Leetcode: 1. Two Sum
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].
Strategy:
looping numbers, if number not inside of map, then put it to map, if it is existing in map, then get the index of the loop, and get the index of it from map
Solution:
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++){
int b = target - nums[i];
if(map.containsKey(b))
return new int[] {i,map.get(b)};
else map.put(nums[i],i);
}
throw new IllegalArgumentException("No solution!");
}
Referenced from
Author: LittleSasuke
Link: https://www.jianshu.com/p/779d43179739
网友评论