[{"date":"2026-05-25","section":"blog","summary":"\u003cp\u003eMost SIP failures don’t happen because people don’t want to invest.\u003cbr\u003e\nThey happen because life gets busy.\u003c/p\u003e\n\u003cp\u003eAt MySipOnline, we repeatedly noticed users forgetting to maintain balance in the secondary bank account linked to their SIP auto-debit mandate.\u003c/p\u003e\n\u003cp\u003eThe result?\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSIP installments getting skipped\u003c/li\u003e\n\u003cli\u003eMandate auto-debit failures\u003c/li\u003e\n\u003cli\u003ePenalty charges\u003c/li\u003e\n\u003cli\u003eAnd a frustrating investing experience overall\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe interesting part was that reminders already existed.\u003cbr\u003e\nBut in reality, notifications and emails often get buried in everyday noise.\u003c/p\u003e","tags":["fintech","mutual-funds","product-design","user-experience"],"title":"Designing a Better SIP Reminder Experience","url":"https://hiteshbuilds.com/blog/designing-a-better-sip-reminder-experience/"},{"date":"2026-05-22","section":"blog","summary":"\u003cp\u003eEvery challenge is a chance to learn. And as a developer, we face them quite frequently.\u003c/p\u003e\n\u003cp\u003eSometimes a product decision lands on your desk that sounds straightforward, but whether it becomes scalable and maintainable depends entirely on how you build it. And honestly, it’s not just the product’s fate at stake — it’s yours too. I didnt wanted to be hauted by bugs at night.\u003c/p\u003e\n\u003cp\u003eThat’s exactly what happened to me not too long ago and here is how i dealt with it.\u003c/p\u003e","tags":["flutter","modularization","architecture","mobile-development","scalability","software-engineering"],"title":"Building Scalable Flutter Apps With Modules","url":"https://hiteshbuilds.com/blog/building-scalable-flutter-apps-with-modules/"},{"date":"2026-05-14","section":"blog","summary":"\u003cp\u003eInvestors often add money to their existing mutual fund portfolio over time — after a salary credit, annual bonus, or simply when they have extra cash available.\u003c/p\u003e\n\u003cp\u003eBut increasing investments across multiple funds has traditionally been a repetitive process.\u003c/p\u003e\n\u003cp\u003eUsers typically need to:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eopen each scheme individually\u003c/li\u003e\n\u003cli\u003eenter an amount\u003c/li\u003e\n\u003cli\u003ecomplete payment\u003c/li\u003e\n\u003cli\u003erepeat the same flow again\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis works when investing in one scheme.\u003c/p\u003e\n\u003cp\u003eNot when managing an entire portfolio.\u003c/p\u003e","tags":["fintech","mutual-funds","product-design","portfolio-management"],"title":"Introducing Portfolio Top Up for Mutual Fund Investments","url":"https://hiteshbuilds.com/blog/top-up-your-mutual-fund-portfolio/"},{"date":"2026-05-10","section":"system-design","summary":"\u003ch1 id=\"parking-lot-lld--what-i-learned-building-it\"\u003eParking Lot LLD — What I Learned Building It\u003c/h1\u003e\n\u003cp\u003eI recently started practicing Low Level Design problems to strengthen my system design and backend thinking.\u003c/p\u003e\n\u003cp\u003eThe second problem I picked was the classic \u003cstrong\u003eParking Lot System\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eAt first, it looked simple.\u003c/p\u003e\n\u003cp\u003eBut while building it, I realized these problems are less about writing code and more about:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eModeling real-world systems\u003c/li\u003e\n\u003cli\u003eManaging state correctly\u003c/li\u003e\n\u003cli\u003eDesigning scalable abstractions\u003c/li\u003e\n\u003cli\u003eAvoiding bad object-oriented practices\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/Hiteshpatel10/system-design/tree/main/parking-lot/src/parkinglot\" target=\"_blank\" rel=\"noopener\"\u003eCode Repo parking lot\u003c/a\u003e\u003c/p\u003e","tags":["system-design","low-level-design","data-structures"],"title":"Parking Lot LLD — What I Learned Building It","url":"https://hiteshbuilds.com/system-design/parking-lot-system-design-lld/"},{"date":"2026-04-24","section":"system-design","summary":"\u003cp\u003eIn the \u003ca href=\"/system-design/elevator-system-design-lld\"\u003ePrevious attempt\u003c/a\u003e we designed an elevator system using two queues — an up queue and a down queue. But that system had some problems. It changed direction abruptly and did not respect the order of requests.\u003c/p\u003e\n\u003cp\u003eTo overcome this, the system has been redesigned with an active and shadow queue strategy that better mirrors how a real elevator behaves.\u003c/p\u003e\n\u003ch2 id=\"the-requirements\"\u003eThe Requirements\u003c/h2\u003e\n\u003cp\u003eThe requirements remain the same as the original design:\u003c/p\u003e","tags":["system-design","low-level-design","scheduling","data-structures"],"title":"Elevator System Design LLD - Active \u0026 Shadow Queue","url":"https://hiteshbuilds.com/system-design/elevator-system-design-lld-active-shadow-queue/"},{"date":"2026-04-22","section":"system-design","summary":"\u003cp\u003eI have started learning low level system design and elevator is the first problem i picked up. In this i have picked the single elvator for simplicity and not get overwhelmed by it and get demotivated.\u003c/p\u003e\n\u003cp\u003eSo I built an elevator system. Lets improve this in stages.\u003c/p\u003e\n\u003cp\u003eNot because it\u0026rsquo;s trendy. I have thought countless times standing in elevator does how it works. and after this i have my answer.\u003c/p\u003e","tags":["system-design","low-level-design","scheduling","data-structures"],"title":"Elevator System Design (LLD): Single Lift Scheduling Explained","url":"https://hiteshbuilds.com/system-design/elevator-system-design-lld/"},{"date":"2026-03-17","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a string \u003ccode\u003es\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe string consists of all printable ASCII characters.\u003c/li\u003e\n\u003cli\u003eGoal is to check if the string is a palindrome — but first we need to \u003cstrong\u003eremove non-alphanumeric characters\u003c/strong\u003e, then check.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA palindrome is a word or sentence if that reads the same backwards as forewords\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/valid-palindrome/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Valid Palindrome\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e7\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInput: s = \u0026#34;A man, a plan, a canal: Panama\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOutput: true\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExplanation: \u0026#34;amanaplanacanalpanama\u0026#34; is a palindrome.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInput: s = \u0026#34;race a car\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOutput: false\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExplanation: \u0026#34;raceacar\u0026#34; is not a palindrome.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cp\u003e\u003cimg alt=\"Visual explanation of strings are palindrome or not\" loading=\"lazy\" src=\"/blind-75/valid-palindrome/example.webp\"\u003e\u003c/p\u003e","tags":["blind-75","string","interview-prep","two-pointers"],"title":"How to check if a string is a Valid Palindrome: O(n) two pointer solution explained","url":"https://hiteshbuilds.com/blind-75/valid-palindrome/"},{"date":"2026-03-16","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem overview\u003c/h2\u003e\n\u003cp\u003eWe are given a string \u003ccode\u003es\u003c/code\u003e containing only the characters \u003ccode\u003e'('\u003c/code\u003e, \u003ccode\u003e')'\u003c/code\u003e, \u003ccode\u003e'{'\u003c/code\u003e, \u003ccode\u003e'}'\u003c/code\u003e, \u003ccode\u003e'['\u003c/code\u003e, and \u003ccode\u003e']'\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eWe need to determine if the input string is \u003cstrong\u003evalid\u003c/strong\u003e or not. A string is valid if:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpen brackets must be closed by the same type of bracket.\u003c/li\u003e\n\u003cli\u003eOpen brackets must be closed in the correct order.\u003c/li\u003e\n\u003cli\u003eEvery close bracket has a corresponding open bracket of the same type.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/valid-anagram/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Valid Parentheses\u003c/a\u003e\u003c/p\u003e","tags":["blind-75","string","stack","interview-prep"],"title":"How to check Valid Parentheses: O(n) Stack solution explained","url":"https://hiteshbuilds.com/blind-75/valid-parentheses/"},{"date":"2026-03-13","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given an array of strings \u003ccode\u003estrs\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eOur goal is to group the anagrams together and return an array of array of strings\u003c/li\u003e\n\u003cli\u003eAll strings are in lowercase English letters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/group-anagrams/\" target=\"_blank\" rel=\"noopener\"\u003eLeetcode - Group Anagrams\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput:  strs = [\u0026#34;eat\u0026#34;,\u0026#34;tea\u0026#34;,\u0026#34;tan\u0026#34;,\u0026#34;ate\u0026#34;,\u0026#34;nat\u0026#34;,\u0026#34;bat\u0026#34;]\nOutput: [[\u0026#34;bat\u0026#34;],[\u0026#34;nat\u0026#34;,\u0026#34;tan\u0026#34;],[\u0026#34;ate\u0026#34;,\u0026#34;eat\u0026#34;,\u0026#34;tea\u0026#34;]]\n\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ccode\u003enat\u003c/code\u003e and \u003ccode\u003etan\u003c/code\u003e are anagrams\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eate\u003c/code\u003e, \u003ccode\u003eeat\u003c/code\u003e and \u003ccode\u003etea\u003c/code\u003e are anagrams\u003c/li\u003e\n\u003cli\u003eThere is no anagram for \u003ccode\u003ebat\u003c/code\u003e in the array\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you dont know how to find anagrams then refer this \u003ca href=\"/blind-75/valid-anagram/\"\u003eValid Anagrams\u003c/a\u003e\u003c/p\u003e","tags":["blind-75","string","interview-prep","hashmap"],"title":"How to Group Anagrams: O(n · m log m) Solution Explained","url":"https://hiteshbuilds.com/blind-75/group-anagrams/"},{"date":"2026-03-12","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given \u003ccode\u003es\u003c/code\u003e and \u003ccode\u003et\u003c/code\u003e of length \u003ccode\u003em\u003c/code\u003e and \u003ccode\u003en\u003c/code\u003e respectively\u003c/li\u003e\n\u003cli\u003eWe need to check if \u003ccode\u003et\u003c/code\u003e is a valid anagram of \u003ccode\u003es\u003c/code\u003e or not.\u003c/li\u003e\n\u003cli\u003eAll characters will be in lowercase.\u003c/li\u003e\n\u003cli\u003eNote — An anagram is a word or phrase that is built by rearranging the characters of another word in a different order to form a new word.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/valid-anagram/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Valid Anagram\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\nInput: s = \u0026#34;anagram\u0026#34;, t = \u0026#34;nagaram\u0026#34;\nOutput: true\n\u003c/code\u003e\u003c/pre\u003e\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e\nInput: s = \u0026#34;rat\u0026#34;, t = \u0026#34;car\u0026#34;\nOutput: false\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"brute-force\"\u003eBrute Force\u003c/h2\u003e\n\u003ch3 id=\"intuition\"\u003eIntuition\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIf \u003ccode\u003et\u003c/code\u003e and \u003ccode\u003es\u003c/code\u003e are not of the same size, then they cannot be valid anagrams.\u003c/li\u003e\n\u003cli\u003eIf all the characters present in \u003ccode\u003es\u003c/code\u003e are present in \u003ccode\u003et\u003c/code\u003e with the same frequency, then it is a valid anagram.\u003c/li\u003e\n\u003cli\u003eUse an array to store the frequency of characters from \u003ccode\u003es\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThen iterate over \u003ccode\u003et\u003c/code\u003e and decrease the frequency.\u003c/li\u003e\n\u003cli\u003eFinally iterate over the array — if anything other than \u003ccode\u003e0\u003c/code\u003e is present, then it is invalid.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"code\"\u003eCode\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e 1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 7\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 8\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 9\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e10\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e11\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e12\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e13\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e14\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e15\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e16\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e17\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e18\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e19\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e20\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e21\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e22\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSolution\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003epublic\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"kt\"\u003ebool\u003c/span\u003e \u003cspan class=\"n\"\u003eisAnagram\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estring\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estring\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003eif\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e!=\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"n\"\u003evector\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"kt\"\u003eint\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003efreq\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003evector\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"kt\"\u003eint\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e26\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003efor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eauto\u003c/span\u003e \u003cspan class=\"nl\"\u003eit\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e){\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eit\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"sc\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e++\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003efor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eauto\u003c/span\u003e \u003cspan class=\"nl\"\u003eit\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e){\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eit\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"sc\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003efor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"k\"\u003eauto\u003c/span\u003e \u003cspan class=\"nl\"\u003eit\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e){\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"k\"\u003eif\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eit\u003c/span\u003e \u003cspan class=\"o\"\u003e!=\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"time--space-complexity\"\u003eTime \u0026amp; Space Complexity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTime\u003c/strong\u003e - O(n)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSpace\u003c/strong\u003e - O(26) → O(1)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"optimization\"\u003eOptimization\u003c/h2\u003e\n\u003ch3 id=\"intuition-1\"\u003eIntuition\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInstead of checking validity in a separate loop, we can decrease the frequency and check it in the same loop.\u003c/li\u003e\n\u003cli\u003eTo further optimize, we can use a fixed-size array instead of a vector.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"code-1\"\u003eCode\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e 1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 7\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 8\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 9\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e10\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e11\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e12\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e13\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e14\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e15\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e16\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSolution\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003epublic\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"kt\"\u003ebool\u003c/span\u003e \u003cspan class=\"n\"\u003eisAnagram\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estring\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estring\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003eif\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e!=\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"kt\"\u003eint\u003c/span\u003e \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e26\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003efor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kt\"\u003echar\u003c/span\u003e \u003cspan class=\"nl\"\u003ec\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003es\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"sc\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e++\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003efor\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kt\"\u003echar\u003c/span\u003e \u003cspan class=\"nl\"\u003ec\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003et\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"k\"\u003eif\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e--\u003c/span\u003e\u003cspan class=\"n\"\u003efreq\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003ec\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u003c/span\u003e\u003cspan class=\"sc\"\u003e\u0026#39;a\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003efalse\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"time--space-complexity-1\"\u003eTime \u0026amp; Space Complexity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTime\u003c/strong\u003e - O(n)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSpace\u003c/strong\u003e - O(26) → O(1)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"key-takeaways\"\u003eKey Takeaways\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYou need to understand what an anagram is before solving the problem.\u003c/li\u003e\n\u003cli\u003eObserve and try to reduce unnecessary iterations if possible.\u003c/li\u003e\n\u003c/ul\u003e","tags":["blind-75","string","interview-prep","hashmap"],"title":"How to find if string is Valid Anagram: O(n) solution explained","url":"https://hiteshbuilds.com/blind-75/valid-anagram/"},{"date":"2026-03-11","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eGiven strings \u003ccode\u003es\u003c/code\u003e and \u003ccode\u003et\u003c/code\u003e of length \u003ccode\u003em\u003c/code\u003e and \u003ccode\u003en\u003c/code\u003e respectively, return the minimum length substring of \u003ccode\u003es\u003c/code\u003e such that every character in \u003ccode\u003et\u003c/code\u003e is present in the substring. The substring can contain duplicate characters.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/minimum-window-substring/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Rotate Image\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eExample:\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput:  s = \u0026#34;ADOBECODEBANC\u0026#34;, t = \u0026#34;ABC\u0026#34;\nOutput: \u0026#34;BANC\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"Visual explanation of valid substring windows  and the minimum one\" loading=\"lazy\" src=\"/blind-75/minimum-window-substring/example.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eBANC\u003c/code\u003e is the minimum window containing all characters from \u003ccode\u003et\u003c/code\u003e.\u003c/p\u003e","tags":["blind-75","string","interview-prep","sliding-window","hashmap"],"title":"Minimum Window Substring: Sliding Window Explained","url":"https://hiteshbuilds.com/blind-75/minimum-window-substring/"},{"date":"2026-03-10","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYou\u0026rsquo;re given a string \u003ccode\u003es\u003c/code\u003e (uppercase letters only) and an integer \u003ccode\u003ek\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eYou can replace any character in the string up to \u003ccode\u003ek\u003c/code\u003e times.\u003c/li\u003e\n\u003cli\u003eReturn the length of the longest substring containing the same letter after performing those replacements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"brute-force\"\u003eBrute Force\u003c/h2\u003e\n\u003ch3 id=\"intuition\"\u003eIntuition\u003c/h3\u003e\n\u003cp\u003eThe idea is straightforward — generate every possible substring, track the frequency of each character inside it, and check if the window is \u0026ldquo;valid.\u0026rdquo;\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTry all possible substrings with two nested loops\u003c/li\u003e\n\u003cli\u003eTrack character frequency within the current substring\u003c/li\u003e\n\u003cli\u003eTrack \u003ccode\u003emaxFreq\u003c/code\u003e — the count of the most frequent character\u003c/li\u003e\n\u003cli\u003eIf \u003ccode\u003elen - maxFreq \u0026lt;= k\u003c/code\u003e, the window is valid — update the result\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eHow this works, we have the \u003ccode\u003emaxFreq\u003c/code\u003e of that substring if we subract it from the \u003ccode\u003elen\u003c/code\u003e then we got len of other chars.\nThe string is only valid if the no of conversion we have to make is less than \u003ccode\u003ek\u003c/code\u003e that is \u003ccode\u003elength - maxFreq\u003c/code\u003e;\u003c/p\u003e","tags":["blind-75","string","interview-prep","sliding-window"],"title":"Longest Repeating Character Replacement: Sliding Window Explained","url":"https://hiteshbuilds.com/blind-75/longest-repeating-character-replacement/"},{"date":"2026-03-09","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a string \u003ccode\u003es\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOur goal is to find the \u003cstrong\u003elongest substring\u003c/strong\u003e that does not contain repeating characters.\u003c/li\u003e\n\u003cli\u003eIn other words, the length of the substring should equal the number of \u003cstrong\u003eunique\u003c/strong\u003e characters in it.\u003c/li\u003e\n\u003cli\u003eIf found → return the \u003cstrong\u003elength\u003c/strong\u003e, otherwise → return \u003ccode\u003e0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThere can be multiple valid substring of length\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/longest-substring-without-repeating-characters/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Longest Substring Without Repeating Characters\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eA substring is continous part of string. The string itself is a valid substring.\u003c/p\u003e","tags":["blind-75","string","interview-prep","sliding-window","hashmap"],"title":"Longest Substring Without Repeating Characters: Sliding Window Explained","url":"https://hiteshbuilds.com/blind-75/longest-substring-without-repeating-characters/"},{"date":"2026-03-06","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given the head of a singly linked list.\nWe are given a node index \u003cstrong\u003en\u003c/strong\u003e from the end.\u003c/p\u003e\n\u003cp\u003eThe goal is to remove the \u003cstrong\u003enth node from the end\u003c/strong\u003e of the list.\u003c/p\u003e\n\u003ch3 id=\"constraints\"\u003eConstraints\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWe have to do this in a single pass.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/remove-nth-node-from-end-of-list/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetcode - Linked List Cycle\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"brute-force-approach\"\u003eBrute Force Approach\u003c/h2\u003e\n\u003ch3 id=\"intuition\"\u003eIntuition\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWe use a vector to keep track of the nodes and their indices.\u003c/li\u003e\n\u003cli\u003eOnce the traversal is finished, we calculate the node index from the start.\u003c/li\u003e\n\u003cli\u003eOnce we get that index, we remove that node.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"code\"\u003eCode\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e 1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 7\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 8\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 9\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e10\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e11\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e12\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e13\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e14\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e15\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e16\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e17\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e18\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e19\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e20\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e21\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e22\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e23\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSolution\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003epublic\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003eremoveNthFromEnd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"kt\"\u003eint\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evector\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epush_back\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kt\"\u003eint\u003c/span\u003e \u003cspan class=\"n\"\u003enodeFromStart\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003en\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003enodeFromStart\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003enodeFromStart\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003enodeFromStart\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003earr\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003enodeFromStart\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"why-this-fails\"\u003eWhy This Fails\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIt usegs extra space \u003cstrong\u003eO(n)\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eThe problem requires a constant space solution.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"time-and-space-complexity\"\u003eTime and Space Complexity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTime: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eSpace: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"optimal-approach\"\u003eOptimal Approach\u003c/h2\u003e\n\u003cp\u003eWe maintain two pointers similar to Floyd’s Tortoise and Hare technique.\u003c/p\u003e","tags":["blind-75","interview-prep","linked-list"],"title":"Remove Nth Node from the End of the Linked List (Blind 75)","url":"https://hiteshbuilds.com/blind-75/remove-nth-node-from-end-of-list/"},{"date":"2026-03-04","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given the heads of two singly linked lists.\nBoth the linked lists are sorted in ascending order.\u003c/p\u003e\n\u003cp\u003eOur goal is to merge the two lists into one sorted list and return the head.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/merge-two-sorted-list/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetcode - Linked List Cycle\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput: list1 = [1,2,4], list2 = [1,3,4]\nOutput: [1,1,2,3,4,4]\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"brute-force\"\u003eBrute Force\u003c/h2\u003e\n\u003ch3 id=\"intuition\"\u003eIntuition\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWe can simply traverse each list and push all values into a vector.\u003c/li\u003e\n\u003cli\u003eThen we sort the vector.\u003c/li\u003e\n\u003cli\u003eWhile iterating through the vector, we create a new linked list.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"code\"\u003eCode\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e 1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 7\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 8\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 9\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e10\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e11\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e12\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e13\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e14\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e15\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e16\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e17\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e18\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e19\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e20\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e21\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e22\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e23\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e24\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e25\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e26\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e27\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e28\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e29\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSolution\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003epublic\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003emergeTwoLists\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003elist1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003elist2\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evector\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"kt\"\u003eint\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elist1\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epush_back\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elist1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eval\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003elist1\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003elist1\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elist2\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epush_back\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elist2\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003eval\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003elist2\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003elist2\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ebegin\u003c/span\u003e\u003cspan class=\"p\"\u003e(),\u003c/span\u003e \u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eend\u003c/span\u003e\u003cspan class=\"p\"\u003e());\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e \u003cspan class=\"nf\"\u003edummy\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003etail\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"n\"\u003edummy\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kt\"\u003eint\u003c/span\u003e \u003cspan class=\"nl\"\u003eval\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etail\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"k\"\u003enew\u003c/span\u003e \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eval\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etail\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etail\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003edummy\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"why-this-fails\"\u003eWhy This Fails\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe lists were already sorted, and we are not taking advantage of that.\u003c/li\u003e\n\u003cli\u003eIt uses extra memory.\u003c/li\u003e\n\u003cli\u003eSorting adds unnecessary overhead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"time-and-space-complexity\"\u003eTime and Space Complexity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTime: \u003cstrong\u003eO(n log n)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eSpace: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"optimal-solution\"\u003eOptimal Solution\u003c/h2\u003e\n\u003cp\u003eInstead of collecting all values, we directly compare nodes from both lists and attach the smaller one.\u003c/p\u003e","tags":["blind-75","interview-prep","linked-list"],"title":"Merge two sorted linked list (Blind 75)","url":"https://hiteshbuilds.com/blind-75/merge-two-sorted-list/"},{"date":"2026-03-02","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given the head of a singly linked list.\nWe need to detect if a cycle is present in the list or not.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFollow-up:\u003c/strong\u003e Solve this in constant space.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/linked-list-cycle/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetcode - Linked List Cycle\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e3 → 2 → 0 → 4\n      ↑     ↓\n      └─────┘\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAs the last node \u003ccode\u003e4\u003c/code\u003e is linked back to \u003ccode\u003e0\u003c/code\u003e, a cycle is present.\u003c/p\u003e\n\u003ch1 id=\"brute-force\"\u003eBrute Force\u003c/h1\u003e\n\u003ch2 id=\"intuition\"\u003eIntuition\u003c/h2\u003e\n\u003cp\u003eThe idea is to store each node in a map.\nWhile iterating, if we encounter the same node again, there is a loop.\u003c/p\u003e","tags":["blind-75","interview-prep","linked-list"],"title":"How to Detect a Cycle in a Linked List (Blind 75)","url":"https://hiteshbuilds.com/blind-75/linked-list-cycle/"},{"date":"2026-02-28","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given the head of a singly linked list.\nWe need to reverse the linked list.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFollow-up:\u003c/strong\u003e Solve it iteratively and recursively.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/reverse-inked-list-cycle/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetcode - Linked List Cycle\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput:  head = [1,2,3,4,5]\nOutput: [5,4,3,2,1]\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"key-observations\"\u003eKey Observations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn a singly linked list, we can only traverse forward.\u003c/li\u003e\n\u003cli\u003eEach node contains a pointer to the next node.\u003c/li\u003e\n\u003cli\u003eReversing the list means changing the direction of every \u003ccode\u003enext\u003c/code\u003e pointer.\u003c/li\u003e\n\u003cli\u003eWe must carefully store the next node before modifying links.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"approach-1-brute-force-using-stack\"\u003eApproach 1: Brute Force (Using Stack)\u003c/h1\u003e\n\u003ch2 id=\"intuition\"\u003eIntuition\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTraverse the list.\u003c/li\u003e\n\u003cli\u003ePush every node onto a stack.\u003c/li\u003e\n\u003cli\u003ePop nodes one by one to rebuild the list in reverse order.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"code\"\u003eCode\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e 1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 6\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 7\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 8\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e 9\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e10\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e11\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e12\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e13\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e14\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e15\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e16\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e17\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e18\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e19\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e20\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e21\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e22\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e23\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e24\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e25\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e26\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e27\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e28\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e29\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e30\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-cpp\" data-lang=\"cpp\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSolution\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003epublic\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ereverseList\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"nb\"\u003eNULL\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003estack\u003c/span\u003e\u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehead\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e!=\u003c/span\u003e \u003cspan class=\"nb\"\u003eNULL\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epush\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eListNode\u003c/span\u003e\u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"n\"\u003enewHead\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etop\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epop\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enewHead\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e!\u003c/span\u003e\u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eempty\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etop\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003est\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epop\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecurr\u003c/span\u003e\u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e\u003cspan class=\"n\"\u003enext\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003eNULL\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003enewHead\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e};\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch2 id=\"why-it-is-not-optimal\"\u003eWhy It Is Not Optimal\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUses extra data structure (stack).\u003c/li\u003e\n\u003cli\u003eRequires additional memory.\u003c/li\u003e\n\u003cli\u003eThe problem can be solved in-place.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"time-and-space-complexity\"\u003eTime and Space Complexity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTime: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eSpace: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1 id=\"approach-2-three-pointer-optimal-iterative\"\u003eApproach 2: Three Pointer (Optimal Iterative)\u003c/h1\u003e\n\u003ch2 id=\"intuition-1\"\u003eIntuition\u003c/h2\u003e\n\u003cp\u003eWe maintain three pointers:\u003c/p\u003e","tags":["blind-75","interview-prep","linked-list"],"title":"How to Reverse a Linked List (Blind 75)","url":"https://hiteshbuilds.com/blind-75/reverse-linked-list/"},{"date":"2026-02-26","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a 2D array of characters named \u003ccode\u003eboard\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe board size is \u003ccode\u003em x n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWe are also given a string \u003ccode\u003eword\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOur goal is to find whether the word exists in the board.\u003c/li\u003e\n\u003cli\u003eIf found → return \u003ccode\u003etrue\u003c/code\u003e, otherwise → return \u003ccode\u003efalse\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/word-search/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Word Search\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv class=\"chroma\"\u003e\n\u003ctable class=\"lntable\"\u003e\u003ctr\u003e\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"lnt\"\u003e1\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e2\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e3\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e4\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e5\n\u003c/span\u003e\u003cspan class=\"lnt\"\u003e6\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd class=\"lntd\"\u003e\n\u003cpre tabindex=\"0\" class=\"chroma\"\u003e\u003ccode class=\"language-text\" data-lang=\"text\"\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInput: board = [[\u0026#34;A\u0026#34;,\u0026#34;B\u0026#34;,\u0026#34;C\u0026#34;,\u0026#34;E\u0026#34;],\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                [\u0026#34;S\u0026#34;,\u0026#34;F\u0026#34;,\u0026#34;C\u0026#34;,\u0026#34;S\u0026#34;],\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                [\u0026#34;A\u0026#34;,\u0026#34;D\u0026#34;,\u0026#34;E\u0026#34;,\u0026#34;E\u0026#34;]],\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       word = \u0026#34;ABCCED\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOutput: true\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003cp\u003e\u003cimg alt=\"Visual representaiton of travesal in matrix to search the word\" loading=\"lazy\" src=\"/blind-75/word-search/example.webp\"\u003e\u003c/p\u003e","tags":["blind-75","matrix","interview-prep","dfs","backtracking"],"title":"Word Search (Blind 75): DFS + Backtracking Explained","url":"https://hiteshbuilds.com/blind-75/word-search/"},{"date":"2026-02-24","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a 2D matrix of size \u003ccode\u003en * n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe matrix represents an image.\u003c/li\u003e\n\u003cli\u003eOur goal is to rotate the image by \u003cstrong\u003e90 degrees clockwise\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eThe solution must use \u003cstrong\u003econstant extra space\u003c/strong\u003e (in-place).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/rotate-image/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Rotate Image\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput:\nmatrix = [[1,2,3],\n          [4,5,6],\n          [7,8,9]]\n\nOutput:\n[[7,4,1],\n [8,5,2],\n [9,6,3]]\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"intuition\"\u003eIntuition\u003c/h2\u003e\n\u003cp\u003eIf we remember basic matrix properties:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTranspose of a matrix\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eReverse of each row\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf we:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eFirst take the \u003cstrong\u003etranspose\u003c/strong\u003e (swap \u003ccode\u003e(i,j)\u003c/code\u003e with \u003ccode\u003e(j,i)\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eThen reverse every row\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eWe effectively rotate the matrix \u003cstrong\u003e90° clockwise\u003c/strong\u003e.\u003c/p\u003e","tags":["blind-75","matrix","interview-prep","in-place","arrays"],"title":"Rotate Image (Blind 75): 90° Matrix Rotation Explained","url":"https://hiteshbuilds.com/blind-75/rotate-image/"},{"date":"2026-02-22","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a matrix of size \u003ccode\u003em * n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eWe need to \u003cstrong\u003ereturn all elements of the matrix in spiral order\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNote:\u003c/strong\u003e The matrix is \u003cstrong\u003enot necessarily square\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/spiral-matrix/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Spiral Matrix\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput: matrix = [[1,2,3],\n                 [4,5,6],\n                 [7,8,9]]\n\nOutput: [1,2,3,6,9,8,7,4,5]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"Visual explanation of matrix traversal for spiral order\" loading=\"lazy\" src=\"/blind-75/spiral-matrix/example.webp\"\u003e\u003c/p\u003e\n\u003ch2 id=\"intuition\"\u003eIntuition\u003c/h2\u003e\n\u003cp\u003eWe need to travese the matrix in this order\u003c/p\u003e\n\u003cp\u003eIndices traversal:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e(0,0) → (0,1) → (0,2)          right\n(0,2) ↓ (1,2) ↓ (2,2)          down\n(2,2) ← (2,1) ← (2,0)          left\n(2,0) ↑ (1,0)                  up\n(1,0) → (1,1)                  right\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSo the movement pattern becomes:\u003c/p\u003e","tags":["blind-75","matrix","interview-prep"],"title":"Spiral Matrix (Blind 75): Matrix traversal in spiral order","url":"https://hiteshbuilds.com/blind-75/spiral-matrix/"},{"date":"2026-02-20","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given a matrix of size \u003ccode\u003em * n\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eIf any element in the matrix is \u003ccode\u003e0\u003c/code\u003e, set its \u003cstrong\u003eentire row and column\u003c/strong\u003e to \u003ccode\u003e0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eConstraint:\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eThe solution must use \u003cstrong\u003eO(1) extra space\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/set-matrix-zeroes/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Set Matrix Zeroes\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput: matrix = [[1,1,1],[1,0,1],[1,1,1]]\nOutput: [[1,0,1],[0,0,0],[1,0,1]]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"Visual explanation of the transformation of the matrix\" loading=\"lazy\" src=\"/blind-75/set-matrix-zeroes/example.webp\"\u003e\u003c/p\u003e\n\u003ch2 id=\"brute-force\"\u003eBrute Force\u003c/h2\u003e\n\u003ch3 id=\"intuition-and-approach\"\u003eIntuition and Approach\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUse an \u003ccode\u003eunordered_map\u003c/code\u003e to store positions of original zeros.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn a second traversal:\u003c/p\u003e","tags":["blind-75","matrix","interview-prep","in-place","space-optimization"],"title":"Set Matrix Zeroes (Blind 75): O(1) Space Solution","url":"https://hiteshbuilds.com/blind-75/set-matrix-zeroes/"},{"date":"2026-02-17","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given an array \u003ccode\u003eheights\u003c/code\u003e of size \u003ccode\u003en\u003c/code\u003e.\nThe value at each index represents the height of a vertical bar.\u003c/p\u003e\n\u003cp\u003eWe need to find two bars such that together they can hold the \u003cstrong\u003emaximum amount of water\u003c/strong\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e We are not allowed to slant the container.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/container-with-most-water/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Container With Most Water\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput: height = [1,8,6,2,5,4,8,3,7]\nOutput: 49\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cimg alt=\"Visual explanation of the \u0026ldquo;Container With Most Water\u0026rdquo; problem showing two highlighted bars forming the max area of 49\" loading=\"lazy\" src=\"/blind-75/container-most-water/example.webp\"\u003e\u003c/p\u003e","tags":["blind-75","arrays","two-pointers","interview-prep"],"title":"Find the container with most water (Blind 75) — O(n) Solution","url":"https://hiteshbuilds.com/blind-75/container-most-water/"},{"date":"2026-02-15","section":"blind-75","summary":"\u003ch2 id=\"problem-overview\"\u003eProblem Overview\u003c/h2\u003e\n\u003cp\u003eWe are given an integer array nums,\nWe need to find \u003cstrong\u003eall unique triplets\u003c/strong\u003e \u003ccode\u003e[nums[i], nums[j], nums[k]]\u003c/code\u003e such that:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ei != j\u003c/code\u003e, \u003ccode\u003ei != k\u003c/code\u003e, \u003ccode\u003ej != k\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enums[i] + nums[j] + nums[k] == 0\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWe need to return unique triplets\u003c/li\u003e\n\u003cli\u003eNotice that the order of the output and the order of the triplets does not matter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/3sum/description/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Three Sum\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"example\"\u003eExample\u003c/h2\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eInput: [-1, 0, 1, 2, -1, -4]\nOutput: [[-1,-1,2], [-1,0,1]]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eExplanation:\u003c/p\u003e","tags":["blind-75","arrays","binary-search","interview-prep"],"title":"Three Sum (Blind 75) — O(n²) Solution","url":"https://hiteshbuilds.com/blind-75/three-sum/"},{"date":"2026-02-13","section":"blind-75","summary":"\u003ch3 id=\"problem-overview\"\u003eProblem Overview\u003c/h3\u003e\n\u003cp\u003eWe are given a sorted array \u003ccode\u003enums\u003c/code\u003e of distinct integers\nThe array has been possibly rotated at some pivot \u003ccode\u003ek\u003c/code\u003e (unknown).\u003c/p\u003e\n\u003cp\u003eExample:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eOriginal: [0,1,2,4,5,6,7]\nRotated : [4,5,6,7,0,1,2]\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe must return the index of \u003ccode\u003etarget\u003c/code\u003e if it exists in the array else return \u003ccode\u003e-1\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe required time complexity is \u003cstrong\u003eO(log n)\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://leetcode.com/problems/search-in-rotated-sorted-array/\" target=\"_blank\" rel=\"noopener\"\u003eLeetCode - Search in Rotated Sorted Array\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"brute-force-approach\"\u003eBrute Force Approach\u003c/h2\u003e\n\u003cp\u003eThe simplest approach is to scan the entire array.\u003c/p\u003e","tags":["blind-75","arrays","binary-search","interview-prep"],"title":"Search in Rotated Sorted Array (Blind 75) — O(log n) Solution","url":"https://hiteshbuilds.com/blind-75/search-in-rotated-sorted-array/"},{"date":"2026-02-11","section":"blind-75","summary":"\u003ch3 id=\"problem-overview\"\u003eProblem Overview\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWe are given an array \u003ccode\u003enums\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe array was originally \u003cstrong\u003esorted in ascending order\u003c/strong\u003e and then \u003cstrong\u003eleft-rotated\u003c/strong\u003e by \u003ccode\u003ek\u003c/code\u003e positions, where \u003ccode\u003e1 \u0026lt; k \u0026lt; n\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAll elements in the array are \u003cstrong\u003eunique\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eWe need to \u003cstrong\u003efind the minimum element\u003c/strong\u003e in the array\u003c/li\u003e\n\u003cli\u003eThe goal is to design a solution with \u003cstrong\u003eO(log n)\u003c/strong\u003e time complexity\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"how-i-approached-the-problem\"\u003eHow I Approached the Problem\u003c/h3\u003e\n\u003cp\u003eI follow a strict rule when solving problems like this:\u003c/p\u003e","tags":["blind-75","arrays","binary-search","interview-prep"],"title":"Blind 75: Find Minimum in Rotated Sorted Array — Understanding Binary Search Deeper","url":"https://hiteshbuilds.com/blind-75/find-minimum-in-rotated-sorted-array/"},{"date":"2026-02-06","section":"blind-75","summary":"\u003ch3 id=\"overview\"\u003eOverview\u003c/h3\u003e\n\u003cp\u003eYou’re given a list of stock prices where each index represents a day. You are allowed \u003cstrong\u003eonly one transaction\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBuy on one day\u003c/li\u003e\n\u003cli\u003eSell on a future day\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eYour goal is simple: \u003cstrong\u003emaximize profit\u003c/strong\u003e.\nIf no profit is possible, return \u003ccode\u003e0\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"problem-constraints\"\u003eProblem Constraints\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e1 \u0026lt;= prices.length \u0026lt;= 10^5\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eExpected time complexity: \u003cstrong\u003eO(n)\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eOnly \u003cstrong\u003eone buy\u003c/strong\u003e and \u003cstrong\u003eone sell\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eSell must happen \u003cstrong\u003eafter\u003c/strong\u003e buy\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"how-i-approached-the-problem\"\u003eHow I Approached the Problem\u003c/h2\u003e\n\u003cp\u003eI follow a strict rule when solving problems like this:\u003c/p\u003e","tags":["blind-75","arrays","greedy","interview-prep"],"title":"Blind 75: Best Time to Buy and Sell Stock — One Pass Solution Explained","url":"https://hiteshbuilds.com/blind-75/best-time-to-buy-and-sell-stock/"},{"date":"2026-01-26","section":"blind-75","summary":"\u003ch3 id=\"problem-overview\"\u003eProblem Overview\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eWe are given an array of integers \u003ccode\u003enums\u003c/code\u003e and an integer \u003ccode\u003etarget\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOur Goal is to find two distinct integers from the array, such that their sum is equal to the \u003ccode\u003etarget\u003c/code\u003e and return their indices.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eConstraints:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe array contains \u003cstrong\u003eat least 2 elements\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eExactly \u003cstrong\u003eone valid solution exists\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe goal is to design a solution with \u003cstrong\u003eO(n) time complexity\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cstrong\u003eLets Fund out how i approached this problem and what were my thoughts while solving this.\u003c/strong\u003e\u003c/p\u003e","tags":["blind-75","arrays","hashmap","interview-prep"],"title":"Blind 75: Two Sum — From Brute Force to Hash Map","url":"https://hiteshbuilds.com/blind-75/two-sum/"},{"date":"2026-01-26","section":"blog","summary":"\u003cp\u003eI am not an if-nester, I am the kind of developer who don\u0026rsquo;t like conditions getting deeply nested.\nAt work i am the one who sees some nested code and try to promote removing the nesting,\nThere are acceptable levels, sure - but I still don\u0026rsquo;t like it.\u003c/p\u003e\n\u003ch5 id=\"level-1\"\u003eLevel 1\u003c/h5\u003e\n\u003cp\u003eThis is fine.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eif (loggedIn) {\n\n}\n\u003c/code\u003e\u003c/pre\u003e\u003ch5 id=\"level-2\"\u003eLevel 2\u003c/h5\u003e\n\u003cp\u003eStill acceptable.\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003eif (loggedIn) {\n  if (authorized) {\n\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"level-3\"\u003eLevel 3\u003c/h4\u003e\n\u003cp\u003eNope. This is where it gets ugly.\u003c/p\u003e","tags":["dart","clean-code","best-practices"],"title":"Stop Nesting If Statements. Use Guard Clauses","url":"https://hiteshbuilds.com/blog/stop-nesting-if-statements/"},{"date":"2026-01-15","section":"blog","summary":"\u003cp\u003eI’ve been using \u003cstrong\u003eDart\u003c/strong\u003e for more than 2 years now and after jumping in and out of \u003cstrong\u003eKotlin\u003c/strong\u003e and some other languages, I realized something,\nDart has \u003cem\u003ea ton\u003c/em\u003e of \u003cstrong\u003esyntactic sugar\u003c/strong\u003e that I use daily without even realizing it — and these features quietly make my life \u003cem\u003esomuch easier\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003eWhenever I switch to another language, I start to \u003cstrong\u003emiss\u003c/strong\u003e these tiny conveniences — from the power of named/unnamed parameters,to null-aware operators, to the spread operator that makes Flutter codebase so clean.\u003c/p\u003e","tags":["flutter","dart"],"title":"9 Dart Syntactic Sugar Features That Make My Codebase Happier","url":"https://hiteshbuilds.com/blog/9-dart-syntactic-sugar-features/"},{"date":"2025-10-23","section":"blog","summary":"\u003ch2 id=\"introduction\"\u003eIntroduction\u003c/h2\u003e\n\u003cp\u003eIn modern systems, messaging queues are one of the most essential building blocks.\u003cbr\u003e\nThey are the unsung heroes that help us decouple services, making our systems \u003cstrong\u003escalable, fault-tolerant, and efficient\u003c/strong\u003e.\u003cbr\u003e\nWithout queues, managing communication between multiple services would be chaotic and unreliable.\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"why-queues\"\u003eWhy Queues?\u003c/h2\u003e\n\u003ch3 id=\"the-monolithic-scenario\"\u003eThe Monolithic Scenario\u003c/h3\u003e\n\u003cp\u003eIn a monolithic architecture, all parts of the system are tightly coupled.\u003cbr\u003e\nLet’s take an example of three services connected directly: \u003cstrong\u003eA → B → C\u003c/strong\u003e.\u003c/p\u003e","tags":["queues","system-design","microservices","architecture"],"title":"Queues — The Backbone of Modern Architecture","url":"https://hiteshbuilds.com/blog/queues-backbone-of-modern-architecture/"},{"date":"2025-10-05","section":"blog","summary":"\u003cp\u003eI’ve been using AWS services like EC2 and RDS under the free tier and recently started incurring charges due to the use of public IP addresses. AWS provides one free public IP, but my RDS instance had another public IP attached — and that’s where the billing began.\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"AWS Billing Screenshot – Public IP Charges\" loading=\"lazy\" src=\"/blog/secure-access-private-rds-ssh-tunneling-bastion-host/aws-bill.png\"\u003e\n\u003cem\u003eAWS billing showing charges for additional public IPv4 addresses.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eA better, more secure, and cost-effective solution is to keep your RDS \u003cstrong\u003eprivate within a VPC\u003c/strong\u003e and connect to it via a method called \u003cstrong\u003eSSH tunneling\u003c/strong\u003e through a \u003cstrong\u003ebastion host\u003c/strong\u003e.\u003c/p\u003e","tags":["aws","rds","cloud-security","vpc","ssh-tunneling"],"title":"Securely Accessing Private RDS Databases Using SSH Tunneling and a Bastion Host","url":"https://hiteshbuilds.com/blog/secure-access-private-rds-ssh-tunneling-bastion-host/"},{"date":"2025-08-05","section":"blog","summary":"\u003cp\u003eWhile helping our support team to resolve a client query, and joking about how AI will replace developers, and the support team no longer needs us. I found out that they also use ChatGPT to draft replies, making them more professional and formal.\u003c/p\u003e\n\u003cp\u003eOn diving deep, I found out a few problems they face consistently\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003erepetitive replies\u003c/li\u003e\n\u003cli\u003eTime wasted on formatting the response\u003c/li\u003e\n\u003cli\u003eInconsistency in tone and writing style in the response\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe decided to make this streamlined so that they don’t have to leave the support panel, and build a chat assistance for the team\u003c/p\u003e","tags":["llm","rag","customer-support","automation"],"title":"How We Streamlined Support Replies Using LLMs and RAG","url":"https://hiteshbuilds.com/blog/how-we-streamlined-support-replies-using-llms-and-rag/"},{"date":"2025-07-06","section":"blog","summary":"\u003cp\u003eAfter exploring Hashnode, Dev.to, and Medium, I decided to self-host my blog, not for performance, but for control. Here\u0026rsquo;s how I did it with AWS, Ghost, and a minimal budget.\u003c/p\u003e\n\u003cp\u003e🧰 TL;DR: Self-hosted my Ghost blog on AWS EC2 (t2.micro) using a custom Nginx setup with /blog routed. Faced installation challenges due to CPU limits, solved it with a t2.large temp instance.\u003c/p\u003e\n\u003cp\u003eHow It All Started\u003c/p\u003e\n\u003cp\u003eIt all started when I was in college and watched a video by Quincy Larson, creator of FreeCodeCamp, about why developers must have a blog. So I started geekaid.in. After writing on it for a while, I dropped it a year ago as it stopped aligning with what I originally thought of.\u003c/p\u003e","tags":["aws","ghost-cms","self-hosting","nginx","ec2"],"title":"How did I host my own blog Ghost CMS + AWS","url":"https://hiteshbuilds.com/blog/how-did-i-host-my-own-blog-ghost-cms-aws/"},{"date":"2024-07-22","section":"blog","summary":"\u003cp\u003eRecently, i opened my linked in and everyone is talking about the update by AOSP (Android Open Source Project) is transitioning from using 4KB memory pages to 16KB. While reading many posts i got learned this will lead to performance boosts, To know more i dive a littler deeper.\u003c/p\u003e\n\u003cp\u003eAfter reading the official post, here’s what I found:\u003c/p\u003e\n\u003cp\u003eWhat’s Changing?\u003c/p\u003e\n\u003cp\u003eThe 16KB page size is supported only on ARM64 architecture and device running Android 15 and above.\u003c/p\u003e","tags":["android","memory-management","performance"],"title":"Android's Shift to 16Kb Page Size - What It Means for Developers","url":"https://hiteshbuilds.com/blog/androids-shift-to-16kb-page-size/"}]