You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断整数列表是否升序的in_order函数实现问题排查

问题原因
  • 你当前的逻辑使用了严格小于判断nums[i-1] < nums[i],要求序列严格递增,而题目要求的升序允许非递减的情况(相邻元素相等也符合要求),因此遇到有重复元素的有序列表就会判定失败。
修改方案

把严格小于号<替换为小于等于号<=即可,修改后的完整代码如下:

def in_order(nums):
    return all(nums[i-1] <= nums[i] for i in range(1, len(nums)))
    
if __name__ == '__main__':
    # 测试乱序用例
    nums1 = [5, 6, 7, 8, 3]
    if in_order(nums1):
        print('In order')
    else:
        print('Not in order')
        
    # 测试无重复有序用例
    nums2 = [5, 6, 7, 8, 10]
    if in_order(nums2):
        print('In order')
    else:
        print('Not in order')
        
    # 测试含重复有序用例
    nums3 = [5, 5, 6, 6, 6, 7, 8, 10, 10, 10, 10]
    if in_order(nums3):
        print('In order')
    else:
        print('Not in order')
运行结果
  • 第一个测试用例输出Not in order
  • 第二个测试用例输出In order
  • 第三个包含重复元素的有序测试用例输出In order,完全符合要求,且未使用sorted()或sort()方法。

内容的提问来源于stack exchange,提问作者JewishEggs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:57:02