码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 1 Two Sum

时间:2016-09-02 19:01:43      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

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].

UPDATE (2016/2/13):
The return format had been changed to zero-based indices. Please read the above updated description carefully.

 

思路:

吃惊的是LeetCode上O(N2)的最朴素的解法是可以AC的,个人选择了基于HashMap的O(N)的解法,先将数组存入后再遍历数组,寻找map中是否存在对应差值。

 

解法:

 1 import java.util.Map;
 2 
 3 public class Solution
 4 {
 5     public int[] twoSum(int[] nums, int target)
 6     {
 7         int[] returnArray = new int[2];
 8         Map<Integer, Integer> map = new HashMap<>();
 9         int subtractValue;
10 
11         for(int i = 0; i < nums.length; i++)
12             map.put(nums[i], i);
13         for(int i = 0; i < nums.length; i++)
14         {
15             subtractValue = target - nums[i];
16             if(map.containsKey(subtractValue) && map.get(subtractValue) != i)
17             {
18                 returnArray[0] = map.get(subtractValue);
19                 returnArray[1] = i;
20                 break;
21             }
22         }
23 
24         return returnArray;
25     }
26 }

 

LeetCode 1 Two Sum

标签:

原文地址:http://www.cnblogs.com/wood-python/p/5834393.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!