首页 > 解决方案 > 解决twoSum问题的线性搜索问题

问题描述

我尝试了 Leecodes 中最简单的问题来解决 twoSum,

问题:

给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。您可能会假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。

我的概念计划:固定第一个数字并找到(目标 - 第一个)
使用:O(n) 迭代 * O(n) 线性搜索

from typing import List 
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)):  #loop 
            find = target - nums[i]
            print(i, find)
            for j in range(i, len(nums)):#linear search 
                if find == nums[j]:
                    print(j)
                    return [i, j]
        return None 

当试图检查它

In [51]: Solution().twoSum(nums, target)                                                                                      
0 3
0
Out[51]: [0, 0]

没能找到问题,被 leecode 中最简单的问题困住了。

标签: pythonpython-3.x

解决方案


尝试在第二个循环中从i + 1tolen(nums)循环,因为您不能两次使用相同的元素。除此之外,它看起来是正确的。


推荐阅读