給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。
你需要實現的函式twosum
需要返回這兩個數的下標, 並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n-1。
注意事項
你可以假設只有一組答案。
樣例給出 numbers =[2, 7, 11, 15]
, target =9
, 返回[0, 1]
.
挑戰
either of the following solutions are acceptable:
最好想到的是暴力,套兩層迴圈,o(n^2),沒什麼意思
1 vector twosum(vector &numbers, inttarget) 11}
12}13return
res;
14 }
怎麼優化呢?想一想我們為什麼需要套第二層迴圈?
因為我們需要找到第二個被加數使得兩數之和為target
那麼找這個數有沒有更好的方法?用hashmap就可以,找只需要o(1)
1 vector twosum(vector &numbers, inttarget)
11 hashmap[numbers[i]]=i;12}
13 }
這也是常見的用空間換時間的方法
容易 56 兩數之和(1)
給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以0開頭。樣例給出 numbers 2,7,11,15 target 9,返回 1,2 方法一 使用map容器...
lintCode 56 兩數之和
給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以 0 開頭。注意事項 你可以假設只有一組答案。樣例 給出 numbers 2,7,11,15 target ...
lintcode 56 兩數之和
描述 給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。tips 你可以假設只有一組答案。樣例 給出 numbers 2,7,11,15 target 9,返回...