3407. Substring Matching Pattern - Easy 前往題目 想法 直接匹配,略過星號 思路 以星號為準切分p 嘗試匹配第一段與第二段p Code以下是不用 built-in 方法的寫法 class Solution { public boolean hasMatch(String s, String p) { // star index int index = -1; 2025-05-25 Leetcode > Easy #Leetcode #心得 #String #String Matching
383. Ransom Note - Easy 前往題目 想法 簡單的 hash table 或是用 array 更快更省空間 Codeclass Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] count = new int[26]; Arrays.fill(c 2025-05-13 Leetcode > Easy #Leetcode #心得 #String #Hash Table #Counting
242. Valid Anagram — Easy 前往題目 搬運一下以前的文章,幸好我對於這題的第一想法已經不是用 hashmap 了,有進步! 想法 非常簡單,但一開始用了hashmap,太冗餘了,簡單的array存count就可以了 Codeclass Solution { public boolean isAnagram(String s, String t) { // Base case 2025-05-11 Leetcode > Easy #Leetcode #心得 #String #Hash Table #Sorting
146. LRU Cache — Medium 前往題目 搬運一下很久以前寫的 想法 需要Map來快速定位item 但我想不通如何儲存LRU和MRU(Most Recently Used) 思路既然 get 和 put 需要 O(1) 的時間完成,get 很明顯就是用 Map,put 的話則是 DoubleLinkedList 可以做到!至於怎麼儲存 LRU 和 MRU,其實很簡單,只要每次 get 和 put 都重新放入 list 的最右 2025-05-10 Leetcode > Medium #Leetcode #心得 #Hash Table #Linked List #Design #Doubly-Linked List
The mechanism of the event loop in browser and node.js 以下兩篇解釋得非常詳細,我就不班門弄斧了,做個傳送門記錄一下 完整圖解Node.js的Event Loop(事件迴圈) 瀏覽器 Event Loop 2025-05-04 JavaScript #EventLoop #Browser #Node.js
常見的後端資料庫結構設計與查詢優化 - Many to Many 假如用戶有很多 checkbox 勾選項目(A/B/C…),怎麼設計 DB? 在實作表單或個人化偏好設定時,常會遇到讓用戶勾選多個選項(如興趣、工作領域等)的需求。這類需求該如何設計資料庫結構?資料量大時查詢又該怎麼優化?這篇文章會從資料結構設計出發,一步步說明到查詢技巧與效能優化策略。 ✅ 多選項目資料表設計:用中介表處理多對多關係🧩 資料關聯關係 一位用戶可以選擇多個 2025-05-04 後端 #系統設計 #Database Design #多對多關係 #查詢優化 #Index 使用技巧 #SQL 實務 #表單設計 #分頁查詢 #Keyset Pagination #軟刪除策略
從「週期性任務」優化談起,一步步深入後端核心議題第二篇 🚀 快取策略:讓網頁不卡卡的第一步 💡 選擇一種聰明的流程設計,比引入各種複雜解決方案更有效、更易維護 在一開始研究週期性任務該怎麼實作時,我發現 Microsoft To Do 採用了一個聰明的設計方式,他們不會提前計算所有未來的任務,也不會一次產生一整串任務清單。而是:🕹️ 當用戶完成任務的那一刻,根據任務的週期設定,自動計算並產生下一個任務。(這是我在使用中觀察到的,嘗試理解我所看到的,實際上我並不知道資料如何傳遞,以 2025-04-22 後端 > 從「週期性任務」優化談起,一步步深入後端核心議題 #Java #快取 #快取策略 #後端開發 #系統效能優化 #Redis #Spring Boot #記憶體快取 #分散式系統 #資料一致性 #Cache Invalidation #Cache Aside #Write-Through #Write-Behind #分頁快取 #熱點快取 #Cache Avalanche #Cache Breakdown #系統設計
從「週期性任務」優化談起,一步步深入後端核心議題第一篇 前言這個系列文章是以我的 side project “DoIt” 的尚未實作的功能——「週期性任務功能」為起點,模擬開發過程中可能遇到的問題,並延伸探討後端架構設計相關的議題,如資料庫設計、效能瓶頸、系統擴充與穩定性等。 🗓️ 摘要在這篇文章中,我會紀錄我從 side project 中尚未實作的功能「週期性任務(Recurring Task)」當作情境並討論解決方案和問題。這是一個在 ToDo 2025-04-18 後端 > 從「週期性任務」優化談起,一步步深入後端核心議題 #backend #system-design #database #recurring-tasks #async #caching #api-rate-limit #data-consistency #architecture #software-engineering
2176. Count Equal and Divisible Pairs in an Array - Easy 前往題目 想法 暴力解 思路沒想到官方只給了暴力解😂可能因為這題的數字很小,所以額外再用其他資料結構不會比較快 Codeclass Solution { public int countPairs(int[] nums, int k) { int res = 0; for (int i = 0; i < nums.lengt 2025-04-17 Leetcode > Easy #Leetcode #心得 #Array
2843. Count Symmetric Integers - Easy 前往題目 想法 訪問所有數字,拆開判斷 思路 直觀的暴力解 Codeclass Solution { public int countSymmetricIntegers(int low, int high) { int res = 0; for (int i = low; i <= high; ++i) { 2025-04-11 Leetcode > Easy #Leetcode #心得 #Math #Enumeration