LeetCode-问题1-Two Sum

来源:互联网 发布:阿里云国际版如何购买 编辑:程序博客网 时间:2024/05/05 10:02

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].


public 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++){
            map.put(nums[i],i);
        }
        int index1=0;
        int index2=0;
        for(int i=0;i<nums.length;i++){
            index1=i;
            int find=target-nums[index1];
            if(map.get(find)!=null&&map.get(find)!=index1){
                index2=map.get(find);
                break;
            }
        }
        int[] res=new int[2];
        res[0]=index1<index2?index1+1:index2+1;
        res[1]=index1>index2?index1+1:index2+1;
        return res;
    }
}
0 0
原创粉丝点击