[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"term-s\u002Fspace-complexity":3,"related-s\u002Fspace-complexity":335},{"id":4,"title":5,"acronym":6,"body":7,"category":316,"description":317,"difficulty":318,"extension":319,"letter":320,"meta":321,"navigation":155,"path":322,"related":323,"seo":329,"sitemap":330,"stem":333,"subcategory":6,"__hash__":334},"terms\u002Fterms\u002Fs\u002Fspace-complexity.md","Space Complexity",null,{"type":8,"value":9,"toc":310},"minimark",[10,15,19,23,26,30,299,303,306],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 — The Vibe Check",[16,17,18],"p",{},"Space complexity is how much extra memory your algorithm uses as the input grows. Some algorithms are super fast but eat up tons of memory; others are slower but barely use any extra space. It is the memory trade-off to time. Sometimes you trade space for speed, like caching.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"Space complexity measures the amount of memory an algorithm requires relative to input size, expressed in Big O notation. It includes both the input space and any auxiliary space (temporary variables, data structures, call stack for recursion). A common trade-off: memoization (caching) reduces time complexity at the cost of increased space complexity.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F O(1) space — iterative sum, only one extra variable:\nfunction sum(arr) {\n  let total = 0;          \u002F\u002F just one variable, no matter how big arr is\n  for (const n of arr) total += n;\n  return total;\n}\n\n\u002F\u002F O(n) space — storing results:\nfunction doubled(arr) {\n  return arr.map(n => n * 2); \u002F\u002F creates a NEW array of same size\n}\n\n\u002F\u002F O(n) space — recursion call stack:\nfunction factorial(n) {\n  if (n \u003C= 1) return 1;\n  return n * factorial(n - 1); \u002F\u002F n frames on call stack\n","javascript","",[38,39,40,49,74,97,134,144,150,157,163,179,215,220,225,231,247,272],"code",{"__ignoreMap":36},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sHwdD","\u002F\u002F O(1) space — iterative sum, only one extra variable:\n",[41,50,52,56,60,64,68,71],{"class":43,"line":51},2,[41,53,55],{"class":54},"spNyl","function",[41,57,59],{"class":58},"s2Zo4"," sum",[41,61,63],{"class":62},"sMK4o","(",[41,65,67],{"class":66},"sHdIc","arr",[41,69,70],{"class":62},")",[41,72,73],{"class":62}," {\n",[41,75,77,80,84,87,91,94],{"class":43,"line":76},3,[41,78,79],{"class":54},"  let",[41,81,83],{"class":82},"sTEyZ"," total",[41,85,86],{"class":62}," =",[41,88,90],{"class":89},"sbssI"," 0",[41,92,93],{"class":62},";",[41,95,96],{"class":47},"          \u002F\u002F just one variable, no matter how big arr is\n",[41,98,100,104,108,111,114,117,120,123,126,129,131],{"class":43,"line":99},4,[41,101,103],{"class":102},"s7zQu","  for",[41,105,107],{"class":106},"swJcz"," (",[41,109,110],{"class":54},"const",[41,112,113],{"class":82}," n",[41,115,116],{"class":62}," of",[41,118,119],{"class":82}," arr",[41,121,122],{"class":106},") ",[41,124,125],{"class":82},"total",[41,127,128],{"class":62}," +=",[41,130,113],{"class":82},[41,132,133],{"class":62},";\n",[41,135,137,140,142],{"class":43,"line":136},5,[41,138,139],{"class":102},"  return",[41,141,83],{"class":82},[41,143,133],{"class":62},[41,145,147],{"class":43,"line":146},6,[41,148,149],{"class":62},"}\n",[41,151,153],{"class":43,"line":152},7,[41,154,156],{"emptyLinePlaceholder":155},true,"\n",[41,158,160],{"class":43,"line":159},8,[41,161,162],{"class":47},"\u002F\u002F O(n) space — storing results:\n",[41,164,166,168,171,173,175,177],{"class":43,"line":165},9,[41,167,55],{"class":54},[41,169,170],{"class":58}," doubled",[41,172,63],{"class":62},[41,174,67],{"class":66},[41,176,70],{"class":62},[41,178,73],{"class":62},[41,180,182,184,186,189,192,194,197,200,202,205,208,210,212],{"class":43,"line":181},10,[41,183,139],{"class":102},[41,185,119],{"class":82},[41,187,188],{"class":62},".",[41,190,191],{"class":58},"map",[41,193,63],{"class":106},[41,195,196],{"class":66},"n",[41,198,199],{"class":54}," =>",[41,201,113],{"class":82},[41,203,204],{"class":62}," *",[41,206,207],{"class":89}," 2",[41,209,70],{"class":106},[41,211,93],{"class":62},[41,213,214],{"class":47}," \u002F\u002F creates a NEW array of same size\n",[41,216,218],{"class":43,"line":217},11,[41,219,149],{"class":62},[41,221,223],{"class":43,"line":222},12,[41,224,156],{"emptyLinePlaceholder":155},[41,226,228],{"class":43,"line":227},13,[41,229,230],{"class":47},"\u002F\u002F O(n) space — recursion call stack:\n",[41,232,234,236,239,241,243,245],{"class":43,"line":233},14,[41,235,55],{"class":54},[41,237,238],{"class":58}," factorial",[41,240,63],{"class":62},[41,242,196],{"class":66},[41,244,70],{"class":62},[41,246,73],{"class":62},[41,248,250,253,255,257,260,263,265,268,270],{"class":43,"line":249},15,[41,251,252],{"class":102},"  if",[41,254,107],{"class":106},[41,256,196],{"class":82},[41,258,259],{"class":62}," \u003C=",[41,261,262],{"class":89}," 1",[41,264,122],{"class":106},[41,266,267],{"class":102},"return",[41,269,262],{"class":89},[41,271,133],{"class":62},[41,273,275,277,279,281,283,285,287,290,292,294,296],{"class":43,"line":274},16,[41,276,139],{"class":102},[41,278,113],{"class":82},[41,280,204],{"class":62},[41,282,238],{"class":58},[41,284,63],{"class":106},[41,286,196],{"class":82},[41,288,289],{"class":62}," -",[41,291,262],{"class":89},[41,293,70],{"class":106},[41,295,93],{"class":62},[41,297,298],{"class":47}," \u002F\u002F n frames on call stack\n",[11,300,302],{"id":301},"when-youll-hear-this","When You'll Hear This",[16,304,305],{},"\"The space complexity is O(n) because we cache all the results.\" \u002F \"Out-of-memory error — check the space complexity of that algorithm.\"",[307,308,309],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":51,"depth":51,"links":311},[312,313,314,315],{"id":13,"depth":51,"text":14},{"id":21,"depth":51,"text":22},{"id":28,"depth":51,"text":29},{"id":301,"depth":51,"text":302},"general","Space complexity is how much extra memory your algorithm uses as the input grows.","intermediate","md","s",{},"\u002Fterms\u002Fs\u002Fspace-complexity",[324,325,326,327,328],"Big O","Time Complexity","Algorithm","Memory Leak","Cache",{"title":5,"description":317},{"changefreq":331,"priority":332},"weekly",0.7,"terms\u002Fs\u002Fspace-complexity","dDQlR1Zl3ho-5xJMh0xUmaPgY73RoECg1cK4dnB42e0",[336,340,343,346],{"title":326,"path":337,"acronym":6,"category":316,"difficulty":338,"description":339},"\u002Fterms\u002Fa\u002Falgorithm","beginner","An algorithm is just a step-by-step recipe for solving a problem. Sort a list? There is an algorithm. Find the shortest path? Algorithm. Make a sandwich?",{"title":324,"path":341,"acronym":6,"category":316,"difficulty":318,"description":342},"\u002Fterms\u002Fb\u002Fbig-o","Big O notation is how we describe how fast (or slow) an algorithm gets as the input grows. O(1) means instant no matter the size.",{"title":327,"path":344,"acronym":6,"category":316,"difficulty":318,"description":345},"\u002Fterms\u002Fm\u002Fmemory-leak","A memory leak is when your program keeps grabbing more memory but never gives it back, like filling a bathtub without a drain.",{"title":325,"path":347,"acronym":6,"category":316,"difficulty":318,"description":348},"\u002Fterms\u002Ft\u002Ftime-complexity","Time complexity is how the time your algorithm takes grows as the input gets bigger. Does it take twice as long when you double the data? Ten times longer?",1776518314353]