四数相加||
1, 简单的两层 for循环 map.put(i+j, map.getOrDefault(i+j,0));
2, res+=map.getOrDefault(-i-j,0);
赎金信
1, 定义一个26长的数组记录 res[ s1.charAt(i)-'a'] ++;
三数之和
1, 双指针法, 如果三数相加小于0 left++, 如果三数相加大于0 right--;
2, left和right的去重在 temp==0后 while(left<right&&nums[left]==nums[left+1]) left++;
3, i的去重在while(left<right)循环前 if(i>=1&&nums[i]==nums[i-1]) continue;
四数之和
1, 在三数之和上 多一层循环 j做好去重
2, 有很多剪枝操作没做好,
标签:map,四数,15,三数,相加,随想录,赎金,left From: https://www.cnblogs.com/Liu5419/p/17142849.html