首页 > 其他 > 详细

leetcode 之 两数之和

时间:2020-06-18 20:44:25      阅读:50      评论:0      收藏:0      [点我收藏+]
# 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 
# 
#  你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 
# 
#  
# 
#  示例: 
# 
#  给定 nums = [2, 7, 11, 15], target = 9
# 
# 因为 nums[0] + nums[1] = 2 + 7 = 9
# 所以返回 [0, 1]
#  
#  Related Topics 数组 哈希表


# leetcode submit region begin(Prohibit modification and deletion)
class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dict1 = {}
        # 遍历一遍列表对应的时间复杂度为O(n)
        for i in range(0, len(nums)):
            # 相减得到另一个数值
            num = target - nums[i]
            # 如果另一个数值不在字典中,则将第一个数值及其的索引报错在字典中
            # 因为在字典中查找的时间复杂度为O(1),因此总时间复杂度为O(n)
            if num not in dict1:
                dict1[nums[i]] = i
            # 如果在字典中则返回
            else:
                return [dict1[num], i]
# leetcode submit region end(Prohibit modification and deletion)

# # second me:
# class Solution:
#     def twoSum(self, nums: List[int], target: int) -> List[int]:
#         if len(nums) < 2:
#             return
#         for i in range(0, len(nums) - 1):
#             for j in range(i + 1, len(nums)):
#                 if nums[i] + nums[j] == target:
#                     return [i, j]

 

leetcode 之 两数之和

原文:https://www.cnblogs.com/qianzhengkai/p/13159285.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!