From 1f48808548c5bd32781606327cc4e250401703c3 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sun, 12 Jul 2026 15:56:36 -0400 Subject: [PATCH] docs(index): update documentation content and structure --- docs/content/docs/index.mdx | 79 +++++++++++++++++++++++++++---------- 1 file changed, 58 insertions(+), 21 deletions(-) diff --git a/docs/content/docs/index.mdx b/docs/content/docs/index.mdx index e9dd825..a6abba0 100644 --- a/docs/content/docs/index.mdx +++ b/docs/content/docs/index.mdx @@ -1,31 +1,68 @@ --- -title: Hello World -description: A Fumapress site styled with shadcn/typeset +title: Introduction +description: Prad's Random CS Notes --- ## Overview -This page renders through Fumadocs MDX and is styled by the `typeset typeset-docs` container — headings, paragraphs, lists, tables, and code all inherit their rhythm from three variables: `--typeset-size`, `--typeset-leading`, and `--typeset-flow`. +This is a collection of random CS notes that I've made over the years. I've been learning CS for a while now and I thought it would be a good idea to make a public repository of my notes. This is the first iteration of the repository and I plan to add more content to it over time. -### Why one CSS file? +## The Golden Rule (Memorize This) -- The file lives in your repo — edit rules directly, no plugin config -- Spacing flows one direction (`margin-block-start` only), so streamed content never restyles earlier blocks -- Zero-specificity `:where()` guards mean Tailwind utilities always win +**Only sort if the problem asks for ORDER or RANKING.** -```ts -// Inline overrides still work inside a typeset container -export const rhythm = { - size: "15px", - leading: 1.75, - flow: "1.5em", -}; -``` +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 -> Tune a tighter preset for chat, a roomier one for docs — same file, different rhythm. -| Control | Purpose | Default | -| ------------------ | --------------------- | -------- | -| `--typeset-size` | Base text size | `1em` | -| `--typeset-leading`| Line height | `1.75` | -| `--typeset-flow` | Space between blocks | `1.25em` |