Michael Lo

Command Palette

Search for a command to run...

Blog

A collection of articles on development, design, and ideas.

Filter Posts

Categories

Autocomplete System design

A comprehensive guide to designing a modern autocomplete component with React and TypeScript

ReactTypeScriptInterviewSystem Design

Hierarchical Checkbox Selection

Implement a Hierarchical Checkbox Selection System

InterviewJavaScriptReactUI ComponentsState Management

Event Bubbling

Understanding Event Bubbling in DOM

InterviewJavaScriptDOMEvent Handling

Functional Programming Concepts - Curry、Compose、Pipe

探討函數式編程中的 Curry、Compose、Pipe 的實作與應用

JavaScriptFunctional ProgrammingTypeScriptSoftware Design

Pipe Function Implementation

In this blog I will Share a solution to the Pipe Function Implementation problem.

InterviewJavaScriptFunctional ProgrammingTypeScript

Retry Promise

In this blog I will share a solution to the Retry Promise interview problem.

InterviewJavaScriptPromiseError HandlingRecursion

Countdown Timer

In this blog I will share a solution to the Countdown Timer interview problem.

InterviewJavaScriptReactTimerHooks

R.A.D.I.O Pattern

探討 Netflix 的前端開發框架與設計模式

ArchitectureDesign PatternsBest PracticesSoftware Design

Grid Template:最直覺的 CMS Layout 解決方案

使用 Grid Template Areas 打造直覺且易維護的 CMS 版面配置

CSSGridLayoutWeb Design

Two Sum

Find two numbers that add up to target using Hash Map - O(n) time complexity

AlgorithmHash MapEasy

Climbing Stairs

Dynamic programming solution using Fibonacci sequence pattern

LeetCodeAlgorithmDynamic ProgrammingFibonacciEasy

Ransom Note

Check if ransom note can be constructed from magazine using Hash Map

LeetCodeAlgorithmHash MapStringEasy

Longest Palindrome

Calculate longest palindrome length using Set for character pairing

LeetCodeAlgorithmHash MapStringGreedyEasy

Add Binary

Add two binary strings and return their sum in binary format

LeetCodeAlgorithmStringMathBit ManipulationEasy

Insert Interval

Insert a new interval into sorted non-overlapping intervals and merge if necessary

LeetCodeAlgorithmArrayGreedyIntervalsMedium

01 Matrix

Calculate distance to nearest 0 for each cell using multi-source BFS

LeetCodeAlgorithmBFSMatrixDynamic ProgrammingMedium

Maximum Depth of Binary Tree

Find the maximum depth of a binary tree using recursive traversal

LeetCodeAlgorithmBinary TreeDFSRecursionEasy

Reverse Linked List

Reverse a singly linked list using iterative approach with pointer manipulation

LeetCodeAlgorithmLinked ListRecursionEasy

Contains Duplicate

Detect if array contains duplicate elements using Set or Map

LeetCodeAlgorithmArrayHash MapEasy

Majority Element

Find the element that appears more than n/2 times using sorting approach

LeetCodeAlgorithmArrayHash MapSortingEasy

Maximum Subarray

Find the contiguous subarray with maximum sum using Kadane's algorithm

LeetCodeAlgorithmArrayDynamic ProgrammingKadane's AlgorithmMedium

Middle of the Linked List

Find the middle node of a linked list using two-pointer technique

LeetCodeAlgorithmLinked ListTwo PointersEasy

Diameter of Binary Tree

Find the longest path between any two nodes in a binary tree

LeetCodeAlgorithmBinary TreeDFSRecursionEasy

JavaScript 原生時間日期處理庫 - Temporal

介紹 Temporal 的時間日期處理

JavaScriptTemporal APIDate & TimeWeb API

用 ni 管理所有 Node 套件

學習如何安裝與使用 ni,統一處理多種包管理器需求,專注於開發本身

Node.jsPackage ManagerDeveloper ToolsProductivity

GitHub Copilot 是什麼?

GitHub Copilot 是甚麼?

AIDeveloper ToolsProductivity

Easy 232. Implement Queue using Stacks

In this blog I will share a solution to the Implement Queue using Stacks problem.

LeetCodeAlgorithmStackQueueDesignEasy

Easy 110. Balanced Binary Tree

In this blog I will share a solution to the Balanced Binary Tree problem.

LeetCodeAlgorithmBinary TreeDFSRecursionEasy

Medium 235. Lowest Common Ancestor of a Binary Search Tree

In this blog I will share a solution to the Lowest Common Ancestor of a Binary Search Tree problem.

LeetCodeAlgorithmBinary Search TreeBinary TreeDFSMedium

Easy 125. Valid Palindrome

In this blog I will share a solution to the Valid Palindrome problem.

LeetCodeAlgorithmStringTwo PointersEasy

Easy 21 - Merge Two Sorted Lists

In this blog I will share a solution to the Merge Two Sorted Lists problem.

LeetCodeAlgorithmLinked ListRecursionSortingEasy

Easy 02 - Valid Parentheses

In this blog I will share a solution to the Valid Parentheses problem.

LeetCodeAlgorithmStackStringEasy

網頁的效能指標及優化

Performance、Metrics

PerformanceWeb VitalsOptimizationSEO
Blog – Michael Lo