【leetcode】Two Sum

来源:互联网 发布:软件设计师下午题型 编辑:程序博客网 时间:2024/05/22 14:31

题目: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, and you may not use the same element twice.

Example:
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

import java.util.HashMap;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 a = 0;        int b = 0;        for(int i=0;i<nums.length;i++){            a = i;            int number = target-nums[a];            if(map.get(number)!=null&&map.get(number)!=a){                b = map.get(number);                break;            }        }        //System.out.println(a +" "+b);        int[] res = new int[2];        res[0] = a<b?(a):(b);        res[1] = a>b?(a):(b);        //System.out.println(res[0] +" "+res[1]);        return res;    }    public static void main(String[] args){        int[] s = new int[]{3,2,4};        new Solution().twoSum(s, 6);    }}
0 0
原创粉丝点击