ARTS 第 11 周
最大水容器、我的五個最糟糕的錯誤、Spring Cache。
Algorithm
Problem:Container With Most Water
思路 1
巢狀迴圈
class Solution { public int maxArea(int[] height) { int max = 0; int l = height.length; for (int i = 0; i < l; i++) { for (int j = i + 1; j < l; j++) { int min = Math.min(height[i], height[j]); int area = min * (j - i); if (max < area) { max = area; } } } return max; } }
思路 2
class Solution { public int maxArea(int[] height) { int maxArea = 0, l = 0, r = height.length - 1; while (l < r) { maxArea = Math.max(maxArea, Math.min(height[l], height[r]) * (r - l)); if (height[l] < height[r]) { l++; } else { r--; } } return maxArea; } }
Review
My Five Worst Bugs: Lessons Learned In System Design 我的五個最糟糕的錯誤:系統設計中的經驗教訓。
- 持續溝通,瞭解真正的需求
- Code Review 與測試非常重要
- 有時錯誤來自環境的變化
- 生產環境的測試不可少
- 多人協同工作,職責要明確
Tip
Spring Cache 中@cacheable
和@CachePut
中conditon
和unless
的區別。
unless
屬性只能阻止物件放進快取,但是在這個方法呼叫的時候,依然會去快取中進行查詢,如果找到了匹配的值,就會返回找到的值,與之不同,如果condition
的表示式計算結果為false
,那麼在這個方法呼叫的過程中,快取是被禁用的。也就是說,不會去快取進行查詢,同時返回值也不會進行快取中。
Share
最近自如的甲醛房鬧得沸沸揚揚,搞得我也去買了甲醛檢測儀、空氣淨化器、紫加黑,以前重來沒有想過買空氣淨化器。這件事情讓我覺得生活中潛在的危害才是最嚴重的。不過有些人為了賺錢真的是夠可以的。