給定乙個整數陣列 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...