001,Two Sum(求兩數的和)

weixin_34247155發表於2018-10-08

給定一個整形陣列和一個整數target,返回2個元素的下標,它們滿足相加的和為target。
你可以假定每個輸入,都會恰好有一個滿足條件的返回結果。

public class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map = new HashMap<>();
        for(int i=0;i<nums.length;i++){
            Integer index=map.get(target-nums[i]);
            if(index==null){
                map.put(nums[i],i);
            }else{
                return new int[]{i,index};
            }
        }
        return new int[]{0,0};
    }
}

個人理解:引入HashMap,key為陣列的值,value為對應的索引,以空間換時間,並且HashMap的索引速度比較快。

相關文章