容易 56 兩數之和(1)

2021-08-03 09:12:47 字數 945 閱讀 6266

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。

你需要實現的函式twosum需要返回這兩個數的下標, 並且第乙個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以0開頭。

樣例給出 numbers =[2, 7, 11, 15], target =9, 返回[1, 2].

方法一:使用map容器來儲存對應的元素和它的下標。

class solution ;//找到則返回

}valueindex.insert();//沒有找到,則把元素插入到map中

}return {};

}};

建立map,用於儲存陣列中的每個數和它的下標

迴圈:對每個元素numbers[i],計算其與target的差值value,在map中搜尋value,

如果找到了,則返回迭代器iter,

返回的迭代器iter與map的型別相同?包含兩位,第一位為數值,第二位為下標,下標從0開始還是1?

若沒找到,則將元素number[i]插入到map中

例:i=0,value=9-number[0]=9-2=7  (此時map為空)

在map中搜尋value=7失敗,將number[0]插入map中,map=[2,0,0......]

i=1,value=9-number[1]=9-7=2   (此時map=[2,0,0......])

在map中搜尋value=2,找到了

返回方法二:方法一中使用了多餘的空間來儲存元素和下標,但是在容器中我們可以直接進行查詢。

vectortwosum(vector&nums, int target) ;}}

return {};

}

1 兩數之和(容易)

在這裡插入 片題目描述 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums...

56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 0 到 n 1。注意事項 你可以假設只有一組答案。樣例給出 numbers 2,7,11,15 target 9,返回 0,1...

lintCode 56 兩數之和

給乙個整數陣列,找到兩個數使得他們的和等於乙個給定的數 target。你需要實現的函式twosum需要返回這兩個數的下標,並且第乙個下標小於第二個下標。注意這裡下標的範圍是 1 到 n,不是以 0 開頭。注意事項 你可以假設只有一組答案。樣例 給出 numbers 2,7,11,15 target ...