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

Python内置函数查询:统计数组最长已排序元素数及自定义实现

问题解答

Python没有内置函数可以直接实现你需要的功能,不过可以通过简单的遍历逻辑来实现。

实现思路

核心是寻找数组中最长的连续严格递增子序列的长度,根据你的示例要求:

  • 如果最长连续递增子序列长度≥2,返回该长度;
  • 如果最长长度仅为1(即数组完全逆序或只有单个元素),返回0。

代码实现

def max_ordered_elements(arr):
    # 处理数组长度小于2的情况
    if len(arr) < 2:
        return 0
    
    max_length = 1
    current_length = 1
    
    # 从第二个元素开始遍历数组
    for i in range(1, len(arr)):
        # 当前元素大于前一个,说明连续递增,更新当前长度
        if arr[i] > arr[i-1]:
            current_length += 1
            # 同步更新最长长度
            if current_length > max_length:
                max_length = current_length
        else:
            # 递增中断,重置当前长度
            current_length = 1
    
    # 根据规则返回结果:最长长度≥2则返回,否则返回0
    return max_length if max_length >= 2 else 0

测试示例

  • 输入 [1, 2, 3] → 输出 3
  • 输入 [3, 2, 1] → 输出 0
  • 输入 [0, 2, 1] → 输出 2

如果你的需求是支持非严格递增有序(即允许元素相等),只需将代码中的判断条件 arr[i] > arr[i-1] 修改为 arr[i] >= arr[i-1] 即可。

内容的提问来源于stack exchange,提问作者江赫霆

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:18:19