zoukankan      html  css  js  c++  java
  • Python算法_两数之和(01)

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    思路一:

    要找出两个数字并且同一个数字不能使用两次,需要我们对原数组进行双重遍历,并且内层循环j的范围要比外层循环i范围小1,只要i+j=9,即可返回i,j

    思路二:

    因为两数之和已经确定,实际上我们只需要用“和”减去其中一个加数,然后看另一个加数在不在数组中即可,这样只需遍历数组一次

     1 class Solution:
     2     def twoSum(self, nums: List[int], target: int) -> List[int]:
     3         # 思路一
     4         # for i in range(len(nums)-1):
     5         #     for j in range(i+1,len(nums)):
     6         #         if nums[i] + nums[j] == target:
     7         #             return [i,j]
     8         # 思路二
     9         for i in range(len(nums)-1):
    10             if (target - nums[i]) in nums[i+1:]:
    11                 i_index = nums.index(nums[i])
    12                 return [i,nums.index(target - nums[i],i_index+1)]
  • 相关阅读:
    Java Web项目(Extjs)报错六
    Java Web项目(Extjs)报错五
    Java Web项目(Extjs)报错四
    Java Web项目(Extjs)报错三
    Java Web项目(Extjs)报错二
    Nginx 反向代理
    解决MyEclipse中的Building workspace问题
    MyEclipse报错
    Java Web项目(Extjs)报错一
    运行项目Tomcat报错
  • 原文地址:https://www.cnblogs.com/waterr/p/13799905.html
Copyright © 2011-2022 走看看