[leetcode][1]two sum
2017-12-26 10:57
369 查看
Problem
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].
Solution
在一个数组中找到不同下标的2个数使得和为某个值,假设数组长度为m。最简单的做法是两层循环,时间复杂度O(m2)。如果用空间换时间,用一个HashMap 存储已经遍历过的数组元素及对应下标,如果在遍历target - nums[i] 时发现HashMap 中已经存在该值,则可以得到结果。时间复杂度为O(m)。public int[] twoSum(int[] nums, int target){ HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(); int[] result = new int[2]; for(int i=0; i<nums.length;i++){ if(map.containsKey(target-nums[i])){ result[0]=i; result[1]=map.get(target-nums[i]); }else map.put(nums[i],i); } return result; }
相关文章推荐
- leetcode Problem1 two sum
- 【Leetcode】Two Sum
- [LeetCode] 001. Two Sum (Medium) (C++/Java/Python)
- leetcode(1)_Two Sum
- *LeetCode-Two Sum
- leetcode 1 Two Sum 两数之和
- LeetCode 1 Two Sum 题解
- LeetCode(1):Two Sum
- [leetcode]1 Two Sum
- leetcode001——Two Sum
- 1.[LeetCode]Two Sum
- LeetCode之Two Sum
- leetcode 1 Two Sum
- [LeetCode] Two Sum
- leetcode-1 Two Sum 找到数组中两数字和为指定和
- LeetCode -- Two Sum
- 个人记录-LeetCode 1.Two Sum
- LeetCode | 1) Two sum
- jiler的LeetCode学习笔记 java版本Two Sum
- [LeetCode]Two Sum