Chieh-An Chang
HomeAboutExperienceCredentialsProjectsBlogResumeContact

Chieh-An (Andy) Chang

Data Science & Data Engineering co-op candidate building analytics pipelines, machine learning models, and AI applications from messy data to deployable systems.

Blog

Learning notes across machine learning, AI, data engineering, software, and finance.

Filter by tag or collection, then open each note for Markdown-based writeups from daily learning, courses, books, and technical topics.

topic: LeetCode Problems

LeetCode 1448: Count Good Nodes in Binary Tree with DFS Path Maximum

Learn how to count good nodes in a binary tree by carrying the maximum value seen along each root-to-node path with recursive DFS.

LeetCodeAlgorithmsData StructuresBinary Tree
Aug 7, 202614 min read

topic: LeetCode Problems

LeetCode 230: Kth Smallest Element in a BST with Iterative Inorder Traversal

Learn how inorder traversal turns a binary search tree into sorted order and lets us stop early at the kth smallest value.

LeetCodeAlgorithmsData StructuresBinary Search Tree
Aug 6, 202615 min read

topic: LeetCode Problems

LeetCode 98: Validate Binary Search Tree with DFS Value Bounds

Learn how to validate a binary search tree by carrying strict lower and upper bounds through a depth-first traversal.

LeetCodeAlgorithmsData StructuresBinary Search Tree
Aug 4, 20269 min read

topic: LeetCode Problems

LeetCode 100: Same Tree Explained with Recursive DFS in C++

Learn how to compare two binary trees node by node using synchronized recursive depth-first search in C++.

LeetCodeAlgorithmsData StructuresBinary Tree
Aug 3, 20269 min read

topic: LeetCode Problems

LeetCode 235: Lowest Common Ancestor in a Binary Search Tree — Find the First Split Point

Learn how to find the lowest common ancestor of two nodes by using the ordering property of a binary search tree.

LeetCodeAlgorithmsData StructuresBinary Search Tree
Aug 3, 202610 min read

topic: LeetCode Problems

LeetCode 572: Subtree of Another Tree — Recursive DFS in C++

Learn how to detect an exact binary-tree subtree by combining depth-first search with a recursive same-tree comparison.

LeetCodeAlgorithmsData StructuresBinary Tree
Aug 3, 202611 min read

topic: LeetCode Problems

LeetCode 104: Maximum Depth of Binary Tree in C++: Recursive DFS Explained

Learn how recursive depth-first search computes the maximum depth of a binary tree, with intuition, correctness proof, complexity analysis, and C++ code.

LeetCodeAlgorithmsData StructuresBinary Tree
Aug 2, 202610 min read

topic: LeetCode Problems

LeetCode 217: Contains Duplicate in C++: Detect Repeated Values with a Hash Set

Learn how to solve LeetCode Contains Duplicate efficiently in C++ using an unordered_set, with intuition, correctness analysis, and a step-by-step walkthrough.

LeetCodeAlgorithmsData StructuresHash Set
Aug 2, 202610 min read

topic: LeetCode Problems

LeetCode 226: Invert Binary Tree Using Recursive DFS in C++

Learn how to invert a binary tree by swapping every node's left and right children with a simple recursive depth-first search.

LeetCodeAlgorithmsData StructuresBinary Tree
Aug 2, 202610 min read

course: Introduction to Machine Learning

Introduction to Machine Learning

Build a rigorous foundation for machine learning through supervised and unsupervised learning, generalization, inductive bias, evaluation, and the statistical view before studying individual algorithms.

Machine Learning AlgorithmMachine Learning FundamentalsSupervised LearningUnsupervised Learning
Aug 1, 202615 min read

topic: Machine Learning Algorithms

Linear Regression: From Fitting a Line to Regularized Models

Build Linear Regression from simple and multiple prediction through residual loss, model limitations, Lasso and Ridge regularization, and leakage-safe cross-validation.

Machine Learning AlgorithmLinear RegressionRegression
Aug 1, 202625 min read

topic: LeetCode Problems

LeetCode 853: Car Fleet in C++ Using Sorting and a Monotonic Stack

Learn how to count car fleets by sorting cars by position, calculating arrival times, and maintaining a monotonic stack.

LeetCodeAlgorithmsData StructuresSorting
Jul 30, 202624 min read

topic: LeetCode Problems

LeetCode 739: Daily Temperatures in C++ Using a Monotonic Stack

Learn how to find the next warmer day efficiently using a monotonic stack, with a correctness proof and detailed complexity analysis.

LeetCodeAlgorithmsData StructuresStack
Jul 29, 202611 min read

topic: Machine Learning Algorithms

Hard-Margin Support Vector Machines: Choosing the Widest Safe Linear Boundary

Derive hard-margin Support Vector Machines from geometric distance and maximum-margin boundary selection through support vectors, duality, limitations, and a leakage-safe scikit-learn workflow.

Machine Learning AlgorithmSupport Vector MachineClassification
Jul 28, 202635 min read

topic: LeetCode Problems

LeetCode 150: Evaluate Reverse Polish Notation in C++ Using a Stack

Learn how to evaluate a Reverse Polish Notation expression efficiently in C++ by using a stack to store operands and intermediate results.

LeetCodeNeetCodeAlgorithmsData Structures
Jul 28, 202617 min read

topic: Machine Learning Algorithms

Logistic Regression: Turning Linear Scores into Probabilities

Build Logistic Regression from the linear score to sigmoid probabilities, log-odds, cross-entropy, gradient updates, softmax, and a leakage-safe scikit-learn pipeline.

Machine Learning AlgorithmLogistic RegressionClassification
Jul 28, 202625 min read

topic: LeetCode Problems

LeetCode 155: Min Stack in C++ Using State Tracking

Learn how to design a stack that supports push, pop, top, and minimum retrieval in constant time by storing the minimum at every stack state.

LeetCodeAlgorithmsData StructuresStack
Jul 27, 202613 min read

topic: LeetCode Problems

LeetCode 20: Valid Parentheses in C++ Using a Stack

Learn how to validate nested brackets using a stack, understand the LIFO pattern, prove correctness, and analyze the time and space complexity.

LeetCodeAlgorithmsData StructuresStack
Jul 27, 20269 min read

topic: Machine Learning Algorithms

Perceptron: Learning Linear Classification Through Machine Monitoring

Build an intuitive and mathematical understanding of the Perceptron through a machine-monitoring classification example, from decision boundaries and weight updates to limitations and scikit-learn.

Machine Learning AlgorithmPerceptronClassification
Jul 26, 202620 min read