header

follow badge

Overview

Relevant problems for myself

  • 🎨 Guides
  • Solutions
  • 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
S
Description
No description provided
Readme
280 KiB
Languages
JavaScript 99%
TypeScript 1%