詳細介紹:學習Java第三十四天——黑馬點評48~60
Leetcode每日一題:
bym思路:一開始嘗試雙指針,思路為固定兩個數,形成前后雙指針,如然后只要找一個mid指針使得三數相加等于0,結果不知道找到后指針怎么走了。于是嘗試三次循環暴力,最壞仍是 O(n3),加了少量剪枝也很容易超時。實在受不了了,給GPT優化:把最內層改成雙指針,整體降到 O(n2) 就能過。
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號