LeetCode001 兩數之和 Two Sum

2021-09-02 15:26:16 字數 836 閱讀 6145

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的 兩個 整數。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

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

因為 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]

採用雙重迴圈的方式,判斷num[i]和num[j]是否相加等於target,簡單直觀,但是需要兩次遍歷陣列,所以時間複雜度為o(n2)

c++**示例:

vectortwosum1(vector&nums,int target)}}

}

學習的乙個部落格大佬寫的,演算法小白回去慢慢的學習研究。利用雜湊表來儲存nums陣列中每乙個索引和索引所對應的值,然後根據索引值排序,利用雙對撞指標的方式(就是兩邊往中間擠)判斷,可以減少時間複雜度為o(nlogn),小白只能看著大佬的**自己再重寫**,慢僅供學習交流,不喜勿噴。

//按照pair的second值進行降序排列

bool compare(pairpair1, pairpair2)else

}vectortwosum2(vector& nums, int target)

sort(pairs.begin(), pairs.end(), compare);

int left = 0; //

int right = pairs.size() - 1;

vectorresult;

while(left < right)

else

}}

LeetCode 001 兩數之和

給定乙個整數陣列nums和乙個整數目標值target,請你在該陣列中找出和為目標值的那兩個 整數,並返回它們的陣列下標。輸入 nums 2,7,11,15 target 9 輸出 0,1 解釋 因為 nums 0 nums 1 9 返回 0,1 定義乙個map,key為陣列的值,value為值對應的...

LeetCode001 兩數之和 easy

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

Leetcode 001 兩數之和 擴充套件

給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 分析 因為題目假設 每個輸入只對應一種答案,且相同的元素不能被重複利用 這就降低了難度。暴力法 使用兩次for迴圈。第乙個for迴圈依次遍歷一次陣列,每次執行過程中選取了乙...