Next greater element: the stack of pending indices, step by step ================================================================ input [2, 1, 2, 4, 3] i=0 value=2: push 0 pending(top first) = [0] i=1 value=1: push 1 pending(top first) = [1, 0] i=2 value=2: pop index 1 (value 1) -> its answer is 2; push 2 pending(top first) = [2, 0] i=3 value=4: pop index 2 (value 2) -> its answer is 4; pop index 0 (value 2) -> its answer is 4; push 3 pending(top first) = [3] i=4 value=3: push 4 pending(top first) = [4, 3] indices still pending have no greater element to their right: [4, 3] -> stay -1 result [4, 2, 4, -1, -1] dailyTemperatures [73, 74, 75, 71, 69, 72, 76, 73] = [1, 1, 4, 2, 1, 1, 0, 0] nextGreaterCircular [1, 2, 1] = [2, -1, 2] nextGreaterSubset [4, 1, 2] within [1, 3, 4, 2] = [-1, 3, -1]