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

纯Python列表问题求助:筛选符合条件的果篮索引

果篮选择问题的修正方案

原代码存在的问题

  • 错误使用全局橙子最大值:你取了整个橙子列表的最大值,但我们只需要在苹果数量为最大值的果篮中筛选橙子最多的,全局最大值可能来自苹果数量不达标的果篮,导致判断逻辑失效。
  • 索引获取逻辑错误:a.index()和b.index()会返回第一个匹配目标值的索引,当有多个果篮符合苹果最大值条件时,无法正确追踪当前比较的果篮,会错误覆盖为第一个匹配项的索引。

修正后的实现代码

n = int(input())
apples = []
oranges = []
for _ in range(n):
    x, y = map(int, input().split())
    apples.append(x)
    oranges.append(y)

# 第一步:找到苹果数量的最大值
max_apples = max(apples)

# 第二步:筛选出所有苹果数量达标的果篮,记录它们的橙子数和索引
candidates = []
for idx in range(n):
    if apples[idx] == max_apples:
        candidates.append( (oranges[idx], idx) )

# 第三步:在候选果篮中选出橙子数量最多的(若数量相同,保留最后一个)
max_orange = -1
result_idx = 0
for orange_count, idx in candidates:
    if orange_count > max_orange:
        max_orange = orange_count
        result_idx = idx
    # 若橙子数量相同,选择最后出现的果篮(可根据需求调整为保留第一个)
    elif orange_count == max_orange:
        result_idx = idx

# 输出从1开始的果篮编号
print(result_idx + 1)

代码逻辑说明

  1. 先收集所有果篮的苹果和橙子数量。
  2. 确定苹果数量的最大值,以此为门槛筛选候选果篮。
  3. 在候选果篮中遍历比较橙子数量,记录橙子数量最多的果篮索引;如果有多个果篮橙子数量相同且为最大值,默认保留最后一个出现的果篮(若需要保留第一个,可删除elif分支)。

示例测试

输入:

3
2 3
1 4
2 5

输出:3,符合题目要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:42:50