1 兩數之和

2021-08-19 19:14:27 字數 1048 閱讀 4628

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。

你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

class solution 

hash[nums[i]] = i;

} return result;

}};

用到了unordered_map,他和map類似,都是通過儲存key-value,可以使得通過key快速索引到value。但內部原理有些區別。

他們之間有不同的優缺點。

缺點: 

適用處,對於那些有順序要求的問題,用map會更高效一些

unordered_map 

缺點: 

適用處,對於查詢問題,unordered_map會更加高效一些,因此遇到查詢問題,常會考慮一下用unordered_map

size_type size() const noexcept;
返回大小。

iterator find ( const key_type& k );
查詢key對應的位置,如果沒找到則返回end()

查詢key對應的值。如果沒找到,則返回異常。

ps:據說hash表乙個key可能會對應多個值,在unordered_map中會按順序排列。但是查詢的時候回變成什麼樣我就沒做實驗試過了,有試過的同學麻煩和我說一下查詢結果。或者說如果我理解錯了也麻煩告訴我一下。

iterator begin() noexcept;

local_iterator begin ( size_type n );

size_type bucket ( const key_type& k ) const;

2、3、

1 兩數之和

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 由於元素不能重複利用,所以使用j i 1,通過雙迴圈,...

1 兩數之和

你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。public int twosum int nums,int target throw new illegalargumentexception no two sum solution 這樣的時間複雜度為0 nlogn 但是通過檢視官方的...

1 兩數之和

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