awelgorithms

// skill graph

see exactly what you know.

Fill shows how strong a skill is now; it fades if you stop practising. A glow means you worked on it in the last two weeks. Dashed means rusty. Open any skill for its LeetCode problems.

Take the free skill check or sign up to fill it in.

hash maps

strength 0 · 0/70 started
map fundamentals0/6 skills started, includes your next skill
  • Create a hash mapUndiscovered, strength 0 of 100, recommended nextnext

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    start
  • Understand key versus valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle an empty hash mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Distinguish a map from a setUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count entries in a hash mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Build a hash map from pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
put0/5 skills started
  • Put a key-value pairUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Put into an empty mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Overwrite the value for a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Put several pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Why map put is expected O(1)Undiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
get0/5 skills started
  • Get the value for a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sumeasy
    practise
  • Miss a map keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Get is not a search by valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Supply a default for a missing keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Distinguish a missing key from value zeroUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
contains key0/4 skills started
  • Check whether a map contains a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sumeasy
    practise
  • Contains-key versus contains-valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Keys are unique values need not beUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Test has-key before getUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
map delete0/4 skills started
  • Remove a key from a mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Remove a missing map keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Remove the last map entryUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Why map delete is expected O(1)Undiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
frequency maps0/5 skills started
  • Build a frequency mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Valid Anagrameasy
    • Group Anagramsmedium
    practise
  • Increment the count for a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decrement a count and maybe removeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Find the most frequent keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compare two frequency mapsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Valid Anagrameasy
    practise
grouping0/4 skills started
  • Group values by a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Group Anagramsmedium
    practise
  • Group indices per valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Append to a list under a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Group Anagramsmedium
    practise
  • Overwrite is the grouping bugUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
index maps0/4 skills started
  • Map a value to its first indexUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Map a value to its last indexUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Two-sum with a value-to-index mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sumeasy
    practise
  • Pick an index map when position mattersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
updating values0/4 skills started
  • Update a map value in placeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Put if the key is absentUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Merge two mapsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compute a value from the previousUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
map iteration0/4 skills started
  • Iterate the keys of a mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Iterate the values of a mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Iterate key-value pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Do not assume map iteration orderUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
map hashing0/4 skills started
  • Hash a map key to a bucketUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Collision chains store pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Map keys must be immutableUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expected O(1) map get versus worst O(n)Undiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
when not a map0/4 skills started
  • Membership only is a setUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Tiny alphabet is an arrayUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pick a tree map when keys must stay sortedUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Values without keys is a listUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
nested and pair keys0/4 skills started
  • Store a map of mapsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pair keys need a compositeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Serialize a pair as a keyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Nested get with a missing inner mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
copy and compare maps0/4 skills started
  • Copy a hash mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compare two hash mapsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Map equality is key and valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Prove a map copy does not share storageUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
complexity for maps0/4 skills started
  • Recognize expected O(1) map getUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Extra space of a hash mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Build a map in linear timeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Nested scan versus a mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
problem decomposition for maps0/5 skills started
  • Recognize a key-value queryUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Recognize a frequency queryUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide map versus setUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide map versus array tableUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Draw the map after each operationUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise

two pointers

strength 0 · 0/70 started
pointer placement0/7 skills started
  • Place opposite-end pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Valid Palindromeeasy
    practise
  • Place same-direction pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Place a slow pointer and a fast pointerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Initialize left at the startUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Initialize right at the last indexUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Start both pointers on the same cellUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Give each sequence its own pointerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
opposite-end motion0/7 skills started
  • Close the gap from both endsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Container With Most Watermedium
    practise
  • Advance only the left endUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Advance only the right endUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide which end to advanceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Container With Most Watermedium
    practise
  • Stop when the pointers meetUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Stop when the pointers crossUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Leave a one-cell gap between pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
same-direction motion0/6 skills started
  • Advance the lead pointer firstUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Catch up with the trail pointerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Keep a fixed gap between pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Grow the gap between pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Shrink the gap between pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Never let the trail pass the leadUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
pair processing0/7 skills started
  • Read the pair at both pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Accept a pair and record itUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reject a pair and move onUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count valid pairs without listing themUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Deduplicate pairs at both pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Target-sum with opposite pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sum IImedium
    practise
  • Closest-sum with opposite pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
sorted two pointers0/6 skills started
  • Require sorted order before facing pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sum IImedium
    practise
  • Move left when the pair sum is too smallUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Two Sum IImedium
    practise
  • Move right when the pair sum is too largeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Exploit monotonic pair sumsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Fix one index then face the restUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • 3Summedium
    practise
  • Skip equal neighbors after a hitUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • 3Summedium
    practise
read/write compaction0/6 skills started
  • Keep a write pointer behind the readUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Write a kept value then advance writeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Skip a dropped value without writingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compact in one forward passUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • The write pointer is the logical lengthUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Overwrite is legal because write lags readUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
partition with pointers0/6 skills started
  • Meet in the middle to partitionUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Scan from left for a misplaceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Scan from right for a misplaceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Swap the two misplaced valuesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Dutch-flag with three pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • The pivot is a third pointerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
two sequences0/6 skills started
  • One pointer per sorted sequenceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Advance the sequence with the smaller headUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Drain the leftover sequenceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Merge two sequences with pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Intersect two sequences with pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Difference of two sequences with pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
linked-structure two pointers0/5 skills started
  • Walk two list pointers in lockstepUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Give one list pointer a head startUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Fast and slow on a cycleUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Fast and slow to the middleUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Meet then restart from the headUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
two-pointer traces0/4 skills started
  • Draw both indices after each moveUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Prove the discarded side is uselessUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Prove no valid pair was skippedUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count remaining cells between pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
complexity for two pointers0/5 skills started
  • Recognize an O(n) two-pointer scanUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Nested two-pointer is still quadraticUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Extra space of two indicesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Sorting then two pointers versus a hashUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Each element is touched a constant timesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
problem decomposition for two pointers0/5 skills started
  • Recognize an opposite-end searchUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Recognize a same-direction trailUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide two pointers versus a windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide two pointers versus a hash setUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Draw the pointers before codingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise

sliding window

strength 0 · 0/65 started
window anatomy0/6 skills started
  • A window is a contiguous rangeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Name the left edge of a windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Name the right edge of a windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Window length is right minus left plus oneUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Empty window versus one-cell windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Window over an empty sequenceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
expand0/6 skills started
  • Grow the window by moving rightUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Include the new rightmost cellUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Update window state on includeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expand until a constraint is metUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expand across the whole arrayUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expand is the only way the right edge movesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
shrink0/6 skills started
  • Shrink the window by moving leftUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Exclude the old leftmost cellUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Update window state on excludeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Shrink while the window is invalidUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Max Consecutive Ones IIImedium
    practise
  • Shrink to the smallest valid windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Minimum Size Subarray Summedium
    practise
  • Left never passes right in a windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
fixed-length windows0/5 skills started
  • Fix the window length in advanceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Maximum Average Subarray Ieasy
    practise
  • Seed the first k cellsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Slide by dropping left and adding rightUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Maximum Average Subarray Ieasy
    practise
  • Fixed length pairs include with excludeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • The last window ends at the last indexUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
variable-length windows0/6 skills started
  • Length is discovered not givenUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expand first then shrinkUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • The valid window is a candidateUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Track the best valid lengthUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Longest Substring Without Repeating Charactersmedium
    practise
  • Track the best valid boundsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Minimum Size Subarray Summedium
    practise
  • Restart is not the same as shrinkUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
window aggregates0/6 skills started
  • Maintain the sum of the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Maximum Average Subarray Ieasy
    • Minimum Size Subarray Summedium
    practise
  • Maintain counts inside the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Maintain distinct count in the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Longest Substring Without Repeating Charactersmedium
    practise
  • Maintain min or max of the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Recompute versus incremental window updateUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Invalid window still has a defined stateUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
constraint windows0/6 skills started
  • At most k distinct in the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • At most k replacements in the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • At most k zeros in the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Max Consecutive Ones IIImedium
    practise
  • Cover every required characterUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • All unique characters in the windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Window product stays under a limitUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
longest vs shortest0/5 skills started
  • Longest valid window expands greedilyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Max Consecutive Ones IIImedium
    practise
  • Shortest valid window shrinks greedilyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Record the answer when the window is validUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Do not record an invalid windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Equal-length ties pick first or lastUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
string windows0/5 skills started
  • Window on characters not wordsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Anagram window has a fixed lengthUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Covering window has a requirement mapUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Unique-character window shrinks on a repeatUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    • Longest Substring Without Repeating Charactersmedium
    practise
  • Alphabet size bounds the window countsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
window traces0/4 skills started
  • Draw left and right after each window moveUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Print the window contents at a candidateUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Prove a discarded prefix cannot returnUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count how many times each index is a window edgeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
complexity for sliding windows0/5 skills started
  • Each index enters the window onceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Each index leaves the window onceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Recognize an amortized linear window scanUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Extra space of the window stateUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Deque extrema are still one passUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
problem decomposition for windows0/5 skills started
  • Translate contiguous into a windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide fixed versus variable window lengthUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide longest versus shortest windowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide window versus prefix sumsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide window versus two pointersUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise

stacks

strength 0 · 0/114 started
stack fundamentals0/7 skills started
  • Create a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Understand LIFOUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Identify the topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle an empty stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Distinguish top from the restUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count items on a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Build a stack from valuesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
push0/6 skills started
  • Push one valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push onto an empty stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push onto a nonempty stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push several values in orderUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Keep the new top after pushUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Why stack push is O(1)Undiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
pop0/6 skills started
  • Pop the topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop from a one-item stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reject pop from emptyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop several values in orderUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Return the popped valueUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Why stack pop is O(1)Undiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
peek and query0/5 skills started
  • Peek the topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Peek does not removeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Check whether a stack is emptyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Read the stack sizeUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reject peek on emptyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
array-backed stacks0/6 skills started
  • Store a stack in an arrayUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Keep a top indexUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push by writing then incrementingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop by decrementing then readingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Grow the backing arrayUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle stack overflowUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
list-backed stacks0/5 skills started
  • Store a stack as a linked listUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push as insert at headUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop as delete the headUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Treat head as the topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Empty list is empty stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
LIFO traces0/5 skills started
  • Trace a sequence of pushes and popsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reconstruct remaining stack itemsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide if a pop sequence is validUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Simulate interleaved stack operationsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Read the stack from bottom to topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
reversing with a stack0/5 skills started
  • Reverse an array with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reverse a string with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reverse a list with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Why a stack reverses orderUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Restore by reversing twiceUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
matching brackets0/6 skills started
  • Push an opening bracketUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop on a matching closerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reject a mismatched closerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Reject leftover openingsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle multiple bracket typesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Treat an empty string as balancedUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
nested structures0/5 skills started
  • Track nesting depth with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Match the nearest openerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Parse nested pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Stop at the matching closerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Distinguish nested from adjacent pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
pop while0/5 skills started
  • Pop while the top fails a conditionUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Leave the first valid topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Empty the stack with pop-whileUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop-while for next greaterUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop-while for next smallerUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
expressions0/5 skills started
  • Push operandsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Apply an operator to two popsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Evaluate postfix with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Convert infix to postfixUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle operator precedence with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
min and extra state0/5 skills started
  • Store pairs on a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Track the running minimumUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push a value and a minUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop and restore the previous minUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Track extra state alongside valuesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
undo and simulation0/5 skills started
  • Treat pop as undo of pushUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Replay a log of stack operationsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Undo the last mutationUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Simulate a process with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Checkpoint and rollback a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
two stacks0/5 skills started
  • Use two stacks togetherUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Transfer from one stack to anotherUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Implement a queue with two stacksUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compare two stack topsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Split work between two stacksUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
call stack0/5 skills started
  • See recursion as a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push a frame on a callUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop a frame on returnUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Read the current frameUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Convert recursion to an explicit stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
next greater with a stack0/5 skills started
  • Find the next greater with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Find the next smaller with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Scan left to right pushing indicesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Write answers when poppingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Handle no greater as a sentinelUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
decoding nested repeats0/4 skills started
  • Decode a nested repeat stringUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push counts and fragmentsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Expand when a closer arrivesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Build output from popped piecesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
collisions and survivors0/4 skills started
  • Resolve opposing items with a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Pop while the top losesUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Push survivorsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Leave equal-strength annihilationUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
copy and compare stacks0/4 skills started
  • Copy a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compare two stacksUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Copy without reversingUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Prove a stack copy does not share storageUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
complexity for stacks0/5 skills started
  • Recognize O(1) push and popUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Recognize amortized O(n) pop-whileUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Count extra space of a stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Avoid scanning under the topUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Compare array vs list stack costsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
problem decomposition for stacks0/6 skills started
  • Recognize a LIFO dependencyUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide what to store on the stackUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Decide values vs indices vs pairsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Identify matching-opener problemsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Identify next-greater problemsUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise
  • Draw the stack after each operationUndiscovered, strength 0 of 100

    Undiscovered · strength 0/100 · not practised yet

    You haven't encountered this yet.

    practise