题目
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].
代码
1 | public int[] twoSum(int[] nums, int target) { |
总结
- 使用HashMap数据结构辅助解题;
- 只要Hash算法够好,对Map的操作能够做到O(1)的操作;
- 有个小技巧先确定result[1]的值,再确定result[0]的值,从后向前匹配,这样能够找到同一个值在数组中出现两次的情况。