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

统计数组中和为K的元素对的Python代码GFG报IndexError如何解决

错误原因
  • 核心问题是方法参数传递顺序不匹配:
    你定义的getPairsCount方法参数顺序为(self, arr, K, N),第二个参数是目标和K,第三个参数是数组长度N。但你在主逻辑调用时传入的参数是ob.getPairsCount(arr, n, k),把数组长度n传给了第二个参数K的位置,把目标和k传给了第三个参数N的位置。
    此时方法内拿到的N实际是目标和K的值,当目标和K大于数组实际长度时,循环for i in range(0,N)会访问超过数组长度的下标,触发IndexError: list index out of range。
  • 补充提示:你当前使用的暴力双循环解法时间复杂度为O(N²),如果GFG测试用例数据量较大,修复索引问题后仍可能出现超时,可改用哈希表统计元素出现次数的方案,将时间复杂度优化到O(N)。
修复方案

两种方案二选一即可,更推荐第二种,和GFG默认的参数顺序对齐避免后续出错:

方案1:调整调用时的参数顺序

将主逻辑中的调用代码修改为:

ans = ob.getPairsCount(arr, k, n)

方案2:调整方法定义的参数顺序

修改getPairsCount方法的参数顺序:

class Solution:
    def getPairsCount(self, arr, N, K):
        count = 0
        for i in range(0,N):
           for j in range(i+1,N): 
                if(arr[i]+arr[j]==K):
                    count+=1
        return count

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:18:00