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

LeetCode 好数对数目问题:代码输出不符预期求排查

问题排查与修复

你的代码逻辑存在一个关键错误:在判断nums[l] == nums[r]时额外加了r != len(nums) -1的限制,这会导致当r指向数组最后一个元素时,即使nums[l]和nums[r]相等,也不会被计入count。

拿输入[1,2,3,1,1,3]举例,当l=2(对应元素3)、r=5(对应元素3)时,明明满足条件,但因为r是最后一个元素,你的第一个if条件不成立,直接进入elif r == len(nums)-1分支,跳过了计数,这就漏掉了(2,5)这个好数对,导致最终结果少1。

修复后的代码

def numIdenticalPairs(self, nums: List[int]) -> int:
    count = 0
    l, r = 0, 1
    while l <= len(nums) - 2: 
        if nums[l] == nums[r]:
            count += 1
        if r == len(nums) - 1:
            l += 1
            r = l + 1
        else:
            r += 1
    return count

逻辑说明

  • 去掉r != len(nums)-1的限制,只要nums[l] == nums[r]就计数
  • 不管是否相等,只要r没到数组末尾就继续右移;r到末尾时,l右移一位,r重置为l+1

这样就能正确统计所有符合条件的好数对,输入[1,2,3,1,1,3]会得到预期的4。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:55:44