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