用hashmap保存“还差多少”,或者“累计值”,用于后面的查询。
- 1是求一个组合即可,一旦查到key就bingo。
保存“还差多少target-nums[i]”作为key,下标i作为value。
注意存和查是不同的!: 存target-nums[i],查询nums[i]。 - 560是求一个连续子数列的和为target,
思路是求当前位的累计和sum,
保存“sum"作为key,“当前位之前已经有多少个子串和是sum-k” 作为value。有点类似于DP的意思。
注意存和查是不同的!: 存sum,查询sum-k。
1. Two Sum
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for