今天有點累,只好來寫一個最基本的two sum
題目說明:給一個陣列和一個目標數,要你求出哪個數字所在的索引(index)可以相加等於目標數
Case 1
Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].
Case 2
Input: nums = [3,2,4], target = 6
Output: [1,2]
Case 3
Input: nums = [3,3], target = 6
Output: [0,1]
最直覺的方式就是使用兩個for loop跑出對應的index,但是這麼做就會遇到超時的問題(時間複雜度太高,O(n^2)),所以我們要使用hasmap來幫我們解決這題。
何謂hashmap?
跟我們在網頁中常看到到json算是蠻類似的,透過key(鍵)和value(值)構成,透過key來進行搜尋value
抱歉今天真的有點累,只有附上程式碼,註解的部分就懶得寫了
Python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
m={}
for i in range(len(nums)):
if m.get(target-nums[i])!=None:
return [i,m.get(target-nums[i])]
else:
m[nums[i]]=i