【问题标题】:sumtwo problem in leetcode: Hi , I am new to Leetcode and I am trying to solve first problemleetcode 中的 sumtwo 问题:嗨,我是 Leetcode 的新手,我正在尝试解决第一个问题
【发布时间】:2020-11-09 03:11:43
【问题描述】:

问题:给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。给定 nums = [2, 7, 11, 15],target = 9,因为 nums[0] +数字[1] = 2 + 7 = 9, 返回 [0, 1]。我收到错误消息“IndexError: list index out of range”我的代码有什么问题?

以下是我的代码:

def sumtwo():
    arr = [1,2,5,3,4]
    l = []
    target = 6
    
    for i in arr[0:-1]:
        for k in arr[i+1:]:
            if arr[i] + arr[k] == target:
                l.append([i,k])
            else:
                continue
                
    return l

sumtwo()
   

【问题讨论】:

    标签: python list


    【解决方案1】:

    您的第一次尝试一点也不差。但是,在这里我们要解决 O(N) 时间复杂度的问题。这会过去的:

    class Solution:
        def twoSum(self, nums, target):
            indices = {}
            for index, num in enumerate(nums):
                if target - num in indices:
                    return indices[target - num], index
                indices[num] = index
    

    我的猜测是,您目前计划实施的类似于:

    def sumtwo():
        arr = [1, 2, 5, 3, 4]
        l = []
        target = 6
    
        for i in range(len(arr)):
            for k in range(i + 1, len(arr)):
                if arr[i] + arr[k] == target:
                    l.append([i, k])
                else:
                    continue
    
        return l
    
    
    print(sumtwo())
    
    

    但是,这不会返回所需的输出。


    参考文献


    编码愉快! ^_^

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 2022-12-03
      • 2022-01-25
      相关资源
      最近更新 更多