Simon Lai's Blog
  • 首頁
  • 歸檔
  • 分類
  • 標籤
  • 關於

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
123…36

搜尋

Hexo Fluid