兩數之和
兩數之和一、暴力破解法給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。
示例:給定 nums = [2, 7, 11, 15], target = 4
因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
2 [7, 11, 15]
7 [11, 15]
11 [15]
遍歷每個元素 查詢後續元素與其相加的和 是否等於target
依次遍歷出 每兩個元素之和
二、倒推法
使用額外容器儲存 快速找到是否存在某個值
《元素值,索引位置》 hashmap
[2, 7, 11, 15]
<2,0> <7,1> <11,2> <15,3>
262 26-2 = 24
7 26-7 = 19
11 26-11 = 15
三、一次雜湊法
[2, 7, 11, 15] 4
26 map
2 26-2 = 24 <2,0>
7 26-7 = 19 <2,0> <7,1>
11 26-11 = 15 <2,0> <7,1> <11,2>
15 26-15 = 11
邊遍歷邊修改map的值 能達到最好效率
public static int twosum(int nums, int target) ;}}
}return new int;
}public static int twosum1(int nums, int target)
for (int i = 0; i < nums.length; i++) ;}}
return new int;
}public static int twosum2(int nums, int target) ;
}map.put(nums[i], i);
}return new int;
}
1 兩數之和 雜湊雜湊
給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 最容易想到的當然是雙層迴圈的暴力解法啦,當然是超時了啊...
LeetCode雜湊表 1兩數之和
題目描述 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
01 兩數之和 (雜湊表演算法)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...