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

不使用set函数统计升序Python列表中不同元素的数量

解题思路

核心逻辑

利用输入序列全部升序排列的特性,重复元素必然连续相邻,不需要嵌套循环、不需要额外存储所有出现过的元素,单次遍历即可完成统计:

  • 空序列直接返回0
  • 非空序列默认至少有1种不同元素,初始计数为1
  • 从第二个元素开始遍历,每次和上一个被统计的不同元素对比,数值不等则计数+1,同时更新参考值为当前元素
  • 最终计数结果就是不同元素的总数量

原有思路问题说明

  • 当前你写的代码仅统计了值为2的元素出现次数,和统计不同元素总数的需求不符
  • 嵌套循环计算笛卡尔积的思路完全没有必要,升序数组的特性已经帮你把重复元素归类到相邻位置,单次遍历的时间复杂度仅为O(n),效率远高于嵌套循环

可运行实现代码

my_list = [1, 1, 2, 2, 2, 3, 5, 6]
if not my_list:
    count = 0
else:
    count = 1
    prev_val = my_list[0]
    for num in my_list[1:]:
        if num != prev_val:
            count += 1
            prev_val = num
print(count)

输入输出验证

示例输入:1 1 2 3 3
运行后输出:3,完全符合题目要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:27:05