演算法1 兩數之和

2021-09-25 21:39:51 字數 829 閱讀 7088

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

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

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

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

所以返回 [0, 1]

1.暴力法:直接雙重迴圈

class solution ;}}

}throw new illegalargumentexception("no two sum solution");

}}

時間複雜度o(n2) 空間複雜度o(1);

2.兩遍hash表

class solution 

for (int i = 0; i < nums.length; i++) ;}}

throw new illegalargumentexception("no two sum solution");

}}

時間複雜度o(n) 空間複雜度o(n);

3. 一遍hash表

class solution ;

}map.put(nums[i], i);

}throw new illegalargumentexception("no two sum solution");

}}

時間複雜度o(n) 空間複雜度o(n);

存在問題:其實後兩種方法是無法區別陣列中有相同元素的相加的。

演算法 1 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。方法一 暴力法 include include int twosum int nums,int tar...

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...