iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0

今天有點累,只好來寫一個最基本的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

上一篇
Day 6 Excel Sheet Column Number
下一篇
Day 8 Symmetric Tree
系列文
從leetcode學習資料結構和演算法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言