如何解决序列几乎增加,很少有测试用例失败
给出一个整数序列作为数组,通过从数组中删除不超过一个元素来确定是否有可能获得严格递增的序列。
def almostIncreasingSequence(sequence):
i = 0
count = 0
while i < len(sequence) - 1:
if sequence[i] > sequence[i+1]:
count += 1
i += 1
if count == 1:
return True
else:
return False
代码无法按以下顺序 [40,50,60,10,20,30]
它将输出 false ,但我得到了 true
解决方法
您没有在检查应该检查的属性。您应该检查是否可以通过从输入中删除0或1个元素来获得严格递增的序列。相反,您检查了输入中是否正好有一对递减的连续元素。
查找一个减少的对仍然有用,因为如果有这样的对,则必须删除其中一个涉及的元素。 (删除任何其他内容,并且您仍然具有该递减对,并且该序列仍未严格递增。)解决此问题的一种直接方法是搜索一个递减对,然后仅检查该序列是否在没有一个的情况下一直在递增涉及的两个要素。 (如果找不到减少的对,则还返回True。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。