56 兩數之和

2022-08-11 05:12:12 字數 778 閱讀 1549

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 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, int

target) 11}

12}13return

res;

14 }

怎麼優化呢?想一想我們為什麼需要套第二層迴圈?

因為我們需要找到第二個被加數使得兩數之和為target

那麼找這個數有沒有更好的方法?用hashmap就可以,找只需要o(1)

1 vector twosum(vector &numbers, int

target)

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,返回...