1. 两数之和

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

1. 两数之和

raykindle   2020-03-16 我要评论

题目:

  给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值 的那两个整数,并返回他们的数组下标
  你可以假设每种输入只会对应一个答案。但是,你不能重复利用 这个数组中同样的元素。

 

示例:

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

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

 

解法:

  • 最优解法
 1 class Solution:
 2     def twoSum(self, nums, target):
 3         """
 4         :type nums: List(int)
 5         :type target: int
 6         :rtype List[int]
 7         """
 8 
 9         temp_dict = {}
10         for i, num in enumerate(nums):
11             if target - num in temp_dict:
12                 return [temp_dict[target - num], i]
13             
14             temp_dict[num] = i         # 不放在if语句前,为解决target-num=num的情况
View Code
  • 延伸知识点:
    1、判断key是否在dict中:
       key in c_dict

    2、带索引遍历:
       for i,value in enumerate(c_list)

    3、列表转字典
       c_dict = {}
        for i, value in enumerate(c_list):
            c_dict[i] = value

    4、字典推导式
        {value: key for key, value in c_dict.items()}

    5、查看某个元素element在list中的index
       c_list.index(element)

    6、通过pop移除并返回某个元素(通过指定index)
        c_list.pop()                        # 默认index=-1,即移除并返回最后1个元素
        c_list.pop(1)                       # 移除并返回第2个元素
View Code

 

 

   

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们