两数之和Python解法
生活随笔
收集整理的這篇文章主要介紹了
两数之和Python解法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個整數(shù)數(shù)組 nums?和一個整數(shù)目標值 target,請你在該數(shù)組中找出 和為目標值 target??的那?兩個?整數(shù),并返回它們的數(shù)組下標。
你可以假設(shè)每種輸入只會對應(yīng)一個答案。但是,數(shù)組中同一個元素在答案里不能重復出現(xiàn)。
你可以按任意順序返回答案。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/two-sum
?
例:
輸入:nums = [2,7,11,15], target = 9
輸出:[0,1]
解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
# 解析:可以直接雙循環(huán)暴力求解,但復雜度太高。可以單循環(huán),然后用一個字典存儲遍歷過的值,然后通過目標值減去當前值的結(jié)果與數(shù)組中的值進行比較,如果有相同的值被存儲過,則返回兩者的下標。
class Solution(object):def twoSum(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[int]"""d = {} # 初始化字典for i in range(len(nums)): # 循環(huán)遍歷每個值if target - nums[i] in d: # 判斷目標值減去當前值后是否存在于字典里return [i, d[target - nums[i]]] # 存在則返回兩者下標d[nums[i]] = i # 不存在則存入當前值總結(jié)
以上是生活随笔為你收集整理的两数之和Python解法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佳能将在更多无反相机上采用眼控对焦 同时
- 下一篇: 两数相加Python解法