leetcode演算法練習 兩數之和

2021-10-03 09:05:24 字數 1192 閱讀 6757

給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:

給定 nums =[2

,7,11

,15], target =

9因為 nums[0]

+ nums[1]

=2+7

=9所以返回 [0,

1]

分析:暴力法兩層迴圈,時間複雜度是n2n^

n2,所以不考慮。

一開始的思路是用map來存放陣列的元素(key)和對應位置(values),但map容器不能存放相同的key,對陣列中有相同元素的情況只能加入最先出現的那個,所以用multimap代替map,它與map的區別是可以存放相同的key。map/multimap中的元素都是按key有序存放的,所以在multimap中相同的key一定會相鄰。

注:這是為了解決tar

get=

2xtarget=2

target

=2x,且在陣列中有兩個x

xx的情況。

用find函式來定位資料出現位置,它返回乙個迭代器,當資料出現時,它返回資料所在位置的迭代器。如果map/multimap中沒有要查詢的資料,它返回的迭代器等於end函式返回的迭代器。

演算法練習之leetcode兩數相加(1)

題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 ...

演算法練習之兩數之和

上周五 1.4號 看到群裡有再說力扣 的演算法題,自己就去搜尋了下,發現是練習演算法 資料庫 shell的平台,很不錯。周五下午在測試的間隙,自己做了一道簡單的演算法題,剛好把這兩天覆習的python的基礎知識複習了。演算法題目 總結思路及知識點1.題目要求 給定任意一列表 列表內容為數字 再給定乙...

演算法練習 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...