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,提问作者江赫霆
相关产品推荐
相关产品推荐

