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

调试Python函数:求数组中最大三个唯一元素的和

函数调试方案:获取最大唯一三元组和

原代码问题分析

原代码完全偏离需求,存在以下核心错误:

  • 逻辑目标错误:计算的是连续三个元素的和,但需求是选取三个最大的唯一值相加,与元素位置无关
  • 最大值更新逻辑错误:if maxi > total: maxi += total 判断条件颠倒,且累加操作不符合求最大值的逻辑
  • 返回值错误:最后返回的是重置后的total=0,而非计算出的最大值

修正后的实现

核心思路:先去重,再降序排序,取前三个最大的唯一值求和。

def getMaximumProfit(profit):
    # 去重并按降序排序
    unique_profits = sorted(list(set(profit)), reverse=True)
    # 取前三个最大唯一值的和
    return sum(unique_profits[:3])

测试验证

  • 测试用例1:profit = [2, 10, 33, 2, 5]
    去重排序后为 [33, 10, 5, 2],前三个和为 33+10+5=48,符合预期
  • 测试用例2:profit = [2, 1, 33, -6, 5, 10, 10]
    去重排序后为 [33, 10, 5, 2, 1, -6],前三个和为 33+10+5=48,符合预期

边界情况处理(可选)

如果存在去重后元素不足3个的场景,可添加判断逻辑:

def getMaximumProfit(profit):
    unique_profits = sorted(list(set(profit)), reverse=True)
    if len(unique_profits) < 3:
        # 此处可根据需求调整,比如返回所有元素的和或抛出异常
        return sum(unique_profits)
    return sum(unique_profits[:3])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:39:55