題目 兩數之和

2022-04-08 18:32:57 字數 928 閱讀 6293

題目:

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

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

示例:

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

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

所以返回 [0, 1]

1 #include2 #include3 #include4

using

namespace

std;56

class

solution

22//

p[nums[i]] = i;

//這是一種匯入方法;

23 p.insert (pair(nums[i],i)); //

這是另一種匯入方法;24}

25 res.push_back(-1

);26

return

res;27}

28};

2930

intmain()

總結:1這是個非常簡單的題目,普通的暴力演算法,應該是o(n^2);為了將時間複雜度降低,有兩個方向,其中乙個就是提高空間複雜度到o(n),利用map的查詢功能,快速定位目標。我這裡利用map查詢,所以時間複雜度只能是o(logn); 如果用hash_map還能繼續降低到o(n);

2還有乙個角度是,基於target的數值;首先假設數值是有序陣列,利用+方法的遞增的性質,可以避免很多計算,甚至可以利用猜測的方法,快速找到目標。但是這樣一來將會用使得程式比較複雜;

3使用hash_map 需要加上using namespace __gnu_cxx;

Leco題目 兩數之和

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

leetcode題目 1 兩數之和

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

Leetcode題目1 兩數之和

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