From 58ffefdaebbdde8734880a95ee4c9bb73920bdcb Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sun, 12 Jul 2026 15:56:35 -0400 Subject: [PATCH] docs(readme): clarify problem solving approach for frequency related problems --- README.md | 58 ------------------------------------------------------- 1 file changed, 58 deletions(-) diff --git a/README.md b/README.md index 2ca968d..ec0bfcb 100644 --- a/README.md +++ b/README.md @@ -16,61 +16,3 @@ Relevant problems for myself - ♿ Patterns -## The Golden Rule (Memorize This) - -**Only sort if the problem asks for ORDER or RANKING.** - -If the problem asks for: -- "first" -- "index" -- "position" -- "does it exist" -- "true/false" -- "count how many" - -→ **DO NOT SORT**. Just use the frequency map and loop. - ---- - -## Decision Cheat Sheet - -| What the problem wants | Do you need to sort? | What to do instead | Example Problem | -|-----------------------------------------|----------------------|-------------------------------------|---------------------| -| Sort characters by how often they appear | YES | Freq + Sort | LC 451 | -| Top K most frequent | YES | Freq + Sort + slice | LC 347 | -| Sort array by frequency | YES | Freq + Sort | LC 1636 | -| First unique character (index) | NO | Freq + loop original string | LC 387 | -| Is it an anagram? | NO | Freq + check counts | LC 242 | -| How many numbers smaller than current | Kind of | Freq + prefix count | LC 1365 | -| Most frequent element | NO | Freq + find max | LC 169 | - ---- - -## Mental Checklist (Say this out loud every time) - -1. "Did I count the frequencies?" → Yes -2. "Does the problem care about the **original order**?" - - Yes → Loop the original string/array and check freq - - No → You can sort -3. "Does it want an **index** or a **boolean**?" - - Yes → Almost never sort -4. "Does it want the elements **re-ordered**?" - - Yes → Sort by frequency - ---- - -## Super Short Version to Tattoo in Your Brain - -**"If it wants the first / index / true-false → loop original. -If it wants sorted / top k / reordered → sort."** - ---- - -## Practice Trigger Words - -- "first non-repeating" → Loop original -- "return its index" → Loop original -- "sort by frequency" → Sort -- "top k frequent" → Sort + slice -- "valid anagram" → Just check counts -