zoukankan      html  css  js  c++  java
  • leetcode1之两数之和

    题目描述:

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

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

    示例:

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

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/two-sum

    代码:

     1 def twosum(nums, target):
     2     '''
     3 
     4     :param nums:
     5     :param target:
     6     :return:
     7     '''
     8     result = []
     9     for i in range(len(nums)):
    10         if target - nums[i] in result:
    11             p = result.index(target - nums[i])
    12             return [p, i]
    13         else:
    14             result.append(nums[i])
    15 
    16 
    17 print("------------测试twoSum()----------")
    18 nums = [3, 2, 4]
    19 res = twosum(nums, 6)
    20 print("res=", res)
    21 
    22 
    23 def twoSum1(nums, target):
    24     '''
    25 
    26     :param nums:
    27     :param target:
    28     :return:
    29     '''
    30     dct = {}
    31     for i, n in enumerate(nums):
    32         if target - n in dct:
    33             return [dct[target - n], i]
    34         dct[n] = i
    35 
    36 
    37 print("------------测试twoSum()----------")
    38 nums = [3, 2, 4]
    39 res = twoSum1(nums, 6)
    40 print("res=", res)

    输出:

    ------------测试twoSum()----------
    res= [1, 2]
    ------------测试twoSum()----------
    res= [1, 2]

    总结:看题目好像很简单,其实这是一道比较经典的题目。简单朴实无华的题目往往会涉及到很多知识点,感觉自己要做出来了,但提交总是显示有错误。本博客采用两种方法来解答,但其实有异曲同工之妙。都是额外借助一个列表或者字典实现循环遍历过程中查重判断需要。掌握了新函数enumerate()用法。

  • 相关阅读:
    RE
    【LeetCode】198. House Robber
    【LeetCode】053. Maximum Subarray
    【LeetCode】152. Maximum Product Subarray
    【LeetCode】238.Product of Array Except Self
    【LeetCode】042 Trapping Rain Water
    【LeetCode】011 Container With Most Water
    【LeetCode】004. Median of Two Sorted Arrays
    【LeetCode】454 4Sum II
    【LeetCode】259 3Sum Smaller
  • 原文地址:https://www.cnblogs.com/rounie/p/13156091.html
Copyright © 2011-2022 走看看