- Oracle Database – Introduction
Oracle Database is what you meet the moment you work on anything old and important. Instance versus database, the tablespace-to-block storage hierarchy, CDB and PDB, which edition to install, and a table of every place Oracle behaves differently from MySQL and Postgres — a user is a schema, an empty string is NULL, and a DATE carries a time.
- LeetCode 31 – Next Permutation
A problem you either see or you do not — no data structure, no recursion, just three passes in the right order. It starts from one observation: a descending suffix is already maximal, so the change has to reach further left than it goes. Finding the pivot, why scanning from the right finds the smallest larger value for free, and why reversing beats sorting the suffix.
- LeetCode 28 – Implement strStr()
Reimplement indexOf. The honest answer to 'do I need to write KMP?' is almost always no — the interviewer wants a clean nested loop with correct bounds, and the bounds are the entire problem. Why i <= n - m is not a typo, how it handles a too-long needle for free, why not to allocate a substring per position, and how to raise KMP without walking into it.
- LeetCode 23 – Merge k Sorted Lists
Merging two lists is solved; the question is in what order you merge k of them, and the obvious order costs a factor of k. Where that extra factor comes from, why pairwise merging gets it to O(N log k), and an honest comparison of divide-and-conquer against a min-heap — same time, different space, and only one of them survives the streaming follow-up.
- LeetCode 22 – Generate Parentheses
The problem that teaches constrained backtracking. The lazy solution builds all 4^n bracket strings and filters; the intended one never builds an invalid string, because two small rules make it impossible. Why close < open is sufficient — not just true — the undo step everyone forgets, and why the output being Catalan-sized bounds any possible solution.