Leetcode力扣1 兩數之和(Python版)
題目描述
給定一個整數陣列 nums 和一個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
暴力求法
直接使用兩個for迴圈
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
for m in range(i+1, len(nums)):
if nums[i]+nums[m] == target:
return [i,m]
優化版(使用字典)
使用字典的鍵
def twoSum(self, nums: List[int], target: int) -> List[int]:
num_dict = {}
for i, num in enumerate(nums):
num_dict[num]=i # num_dict:[2:0,7:1,11:2,15:3]
for j in range(len(nums)):
tar = target - nums[j]
if tar in num_dict.keys(): # num_dict.keys()獲取所有的鍵
return [j,num_dict[tar]]
相關文章
- 力扣題解1-兩數之和力扣
- 力扣.1 兩數之和 N 種解法 two-sum力扣
- LeetCode 1 兩數之和LeetCode
- leetcode #1 兩數之和LeetCode
- LeetCode-Python 1. 兩數之和LeetCodePython
- LeetCode 1. 兩數之和LeetCode
- LeetCode-1. 兩數之和LeetCode
- LeetCode 1 兩數之和(簡單)LeetCode
- 用python手刃Leetcode(1):兩數之和【簡單題】PythonLeetCode
- [LeetCode 刷題] 1. 兩數之和LeetCode
- LeetCode題集-1- 兩數之和LeetCode
- 力扣.16 最接近的三數之和力扣
- LeetCode:兩數之和LeetCode
- LeetCode - 兩數之和LeetCode
- 每日一道 LeetCode (1):兩數之和LeetCode
- [演算法] LeetCode 1.兩數之和演算法LeetCode
- #leetcode刷題之路1-兩數之和LeetCode
- LeetCode每日一題:兩數之和(No.1)LeetCode每日一題
- leetCode解題記錄1 - 兩數之和LeetCode
- python leetcode 之兩數之和(two sum)PythonLeetCode
- leetcode 解題 1.兩數之和-python3 兩種解法 @ 官方LeetCodePython
- 1. 兩數之和
- LeetCode之兩數之和LeetCode
- LeetCode-兩數之和LeetCode
- 力扣演算法經典第一題——兩數之和(Java兩種方式實現)力扣演算法Java
- LeetCode每日一題 (32)1. 兩數之和LeetCode每日一題
- LeetCode: Two sum(兩數之和)LeetCode
- [LeetCode] Two Sum 兩數之和LeetCode
- 用 PHP 在 力扣 上演算法 [兩數之和]{一天一更}PHP力扣演算法
- 力扣 170. 兩數之和 III - 資料結構設計 two-sum III力扣資料結構
- leetcode-0001 兩數之和LeetCode
- 組隊刷LeetCode - 兩數之和LeetCode
- 簡單演算法題:leetcode-1 兩數之和演算法LeetCode
- 【新手小白刷leetcode記錄貼】 1.兩數之和LeetCode
- LeetCode 力扣 羅馬數字轉整數LeetCode力扣
- 力扣題解2-兩數相加力扣
- 力扣 653. 兩數之和 IV 二叉樹/binary-tree two-sum IV力扣二叉樹
- 從零打卡leetcode之day 1--兩數之和LeetCode