- LeetCode 64 – Minimum Path Sum
Same table, one operator changed, and with it the entire class of problem. Building the grid where the greedy loses instead of just claiming it does, why a missing neighbour is infinity here when it was zero in the counting version, and why Integer.MAX_VALUE as the sentinel overflows into a path through the wall.
- LeetCode 63 – Unique Paths II
Unique Paths with obstacles: the recurrence is unchanged, one guard goes in front of it. An obstacle means zero paths, and zeros propagate on their own with no unreachable-region detection. The trap is the first row and column, where one obstacle cuts off everything after it.
- MongoDB – Installation and mongosh
Get a MongoDB running in Docker, connect with mongosh, and understand why this track runs a replica set from the very first command.
- MySQL – LAST_INSERT_ID
Getting the AUTO_INCREMENT id of the row you just inserted, which is exactly what you need when saving an order and then its line items. Why LAST_INSERT_ID() is per-connection and therefore safe under concurrency, what it returns after a multi-row INSERT, why it does not see a trigger's own inserts, and how JDBC's `getGeneratedKeys` exposes the same thing to Java.
- MySQL – DELETE
Removing rows, and the several ways to regret it. DELETE with WHERE, DELETE with a JOIN, deleting in batches so a big cleanup does not hold one enormous transaction, TRUNCATE versus DELETE and what each does to AUTO_INCREMENT, what ON DELETE CASCADE takes with it, and soft delete — the `deleted` flag the pizza schema uses so a historical order never loses the product it referenced.