序列几乎增加,很少有测试用例失败

问题描述

给出一个整数序列作为数组,通过从数组中删除不超过一个元素来确定是否有可能获得严格递增的序列。

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。)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...