Python实现元素匹配列表对应区间的代码结果偏差排查(满足O(n)要求)
区间范围匹配计数的代码问题
核心功能需求
需要实现的核心逻辑为:判断给定元素是否落在列表定义的对应区间范围内,完成合规元素的计数统计。
现有实现代码
A = [1,1,1,2,4] count = [] freq = 0 # 预设区间列表 ranges = [[1, 6], [1, 6], [1, 6], [2, 7], [4, 9]] for i in A : if (i >= ranges[i][0] and i <= ranges[i][1]): freq = freq + 1 count.append(freq)
预期输出规则
按照业务逻辑,最终count列表的预期结果为[5,5,5,2,1],对应的计数逻辑为:
- 共5个元素落在与值1关联的[1,6]区间
- 共2个元素落在与值2关联的[2,7]区间
- 共1个元素落在与值4关联的[4,9]区间
现有代码的运行异常
代码实际运行返回的count结果为[1,2,3,4,5],结果呈现每次循环固定自增1的规律,与预期效果不符,目前无法定位具体的代码错误点。
实现约束条件
- 必须满足O(n)的时间复杂度要求,不能通过全量遍历ranges列表的方式实现逻辑
- 代码实现过程中不允许导入字典相关模块
内容的提问来源于stack exchange,提问作者user15393230
相关产品推荐
相关产品推荐

