您的位置:首页 > 其它

LeetCode-问题1-Two Sum

2016-09-21 11:10 429 查看
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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: