2 sum
来源:互联网 发布:数据库系统实现 斯坦福 编辑:程序博客网 时间:2024/05/16 02:14
2 sum
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.
Note
You may assume that each input would have exactly one solution
Example
numbers=[2, 7, 11, 15], target=9
return [1, 2]
Challenge
Solution:1. O(1) Space, O(nlogn) Time
2. O(n) Space, O(n) Time
O(1) Space, O(n^2) Time
public int[] twoSum(int[] numbers, int target) { int[] result = new int[2]; if (numbers == null || numbers.length == 0) { return result; } for (int i = 0; i < numbers.length; i++) { for (int j = i + 1; j < numbers.length; j++) { if (numbers[i] + numbers[j] == target) { result[0] = i + 1; result[1] = j + 1; return result; } } } return result; }
O(n) Space, O(n) Time
public int[] twoSum(int[] numbers, int target) { int[] result = new int[2]; if (numbers == null || numbers.length == 0) { return result; } HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < numbers.length; i++) { map.put(numbers[i], i + 1); } for (int i = 0; i < numbers.length; i++) { if (map.containsKey(target - numbers[i])) { result[0] = i + 1; result[1] = map.get(target - numbers[i]); break; } } return result; }
思路:
1. 嵌套遍历,由于原数组非有序,不能提前终止循环。
2. 占用额外空间换取查找速度,利用哈希表(数值,下标加1),快速定位下标。
0 0
- leetcode 2 sum 3sum 4sum
- 2Sum 3Sum 4Sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- 2sum
- 2 sum
- 2Sum
- 2 sum
- 2sum
- [LeetCode] 2Sum, 3Sum, 4Sum, 3SUm closet
- [LeetCode] K sum(2Sum、3Sum、4Sum)
- 2sum 3sum 4sum 各种sum
- leetcode--sum集合:2sum,3sum,4sum
- leetcode --- 2 sum , 3 sum , 4 sum , k sum problem
- 2-sum, 3-sum, 4-sum and n-sum
- Leetcode:2Sum,3Sum
- leetcode001-2Sum,3Sum
- GDI+ 双缓冲 的起因以及解决办法
- Arrays.asList方法总结
- NUMERIC_ROUNDABORT
- 新萝卜家园Ghost版Win10系统X32极速装机版2015年4月
- android sdk下载不了
- 2 sum
- Longest Palindromic Substring 最长的回文字串
- Dev Express控件应用之ChartControl
- cookie存储json
- [ Hadoop | Spark | Scala ] 搭建 Scoobi 开发环境
- linux启动顺序
- JavaWeb根据sessionId获取session对象
- hbase how to use zk
- java Enumeration