详细介绍:学习Java第三十四天——黑马点评48~60
Leetcode每日一题:
bym思路:一开始尝试双指针,思路为固定两个数,形成前后双指针,如然后只要找一个mid指针使得三数相加等于0,结果不知道找到后指针怎么走了。于是尝试三次循环暴力,最坏仍是 O(n³),加了少量剪枝也很容易超时。实在受不了了,给GPT优化:把最内层改成双指针,整体降到 O(n²) 就能过。
by灵茶山艾府: 枚举 nums[i],问题变成 nums[j]+nums[k]=−nums[i],这和 167. 两数之和 II - 输入有序数组 - 力扣(LeetCode) 是一样的。
两个小剪枝:
// 如果最小三数之和都 > 0,后面更不可能了
if (nums[i] + nums[i+1] + nums[i+2] > 0) break;
// 如果与当前能取到的最大两数之和仍 < 0,换下一个 i
if (nums[i] + nums[n-2] + nums[n-1] < 0) continue;`

实战篇-优惠券秒杀
前两章用Redis解除Session共享问题和用Redis添加查询业务的缓存并且应对缓

浙公网安备 33010602011771号