承德網(wǎng)站建設(shè)方案在線排名優(yōu)化工具
給定一個整數(shù)數(shù)組?nums
?和一個整數(shù)目標(biāo)值?target
,請你在該數(shù)組中找出?和為目標(biāo)值?target
? 的那?兩個?整數(shù),并返回它們的數(shù)組下標(biāo)。
你可以假設(shè)每種輸入只會對應(yīng)一個答案。但是,數(shù)組中同一個元素在答案里不能重復(fù)出現(xiàn)。
你可以按任意順序返回答案。
示例 1:
輸入:nums = [2,7,11,15], target = 9 輸出:[0,1] 解釋:因為 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
輸入:nums = [3,2,4], target = 6 輸出:[1,2]
示例 3:
輸入:nums = [3,3], target = 6 輸出:[0,1]
以Java代碼實現(xiàn)Solution類
在類中定義HasMap類
算法為nums數(shù)組中第i個往前找符合條件的如 第3個 往前找HashMap里的數(shù)等于target-nums[3]
沒有便將nums[3]放入Hahmap繼續(xù)找。
該好處便是只用循環(huán)一次數(shù)組
class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();for(int i=0;i<nums.length;i++){if(map.containsKey(target-nums[i])){return new int[]{map.get(target-nums[i]),i};}map.put(nums[i],i);}return new int[0];
}
}