这里有个细节,因为要找到整个数组的“更大的数”,即下一个数,所以需要遍历两遍数组。为了代码的统一性,所以循环 2 * n - 1次,下标 采取 i % n 的方式达到循环不越界的效果。
i = 0
res[]: [-1, -1, -1, -1, -1, -1, -1, -1]
stack: [0]
i = 1
res[]: [8, -1, -1, -1, -1, -1, -1, -1]
stack: [1]
i = 2
res[]: [8, -1, -1, -1, -1, -1, -1, -1]
stack: [2, 1]
i = 3
res[]: [8, -1, -1, -1, -1, -1, -1, -1]
stack: [3, 2, 1]
i = 4
res[]: [8, -1, -1, -2, -1, -1, -1, -1]
stack: [4, 2, 1]
i = 5
res[]: [8, -1, -1, -2, -1, -1, -1, -1]
stack: [5, 4, 2, 1]
i = 6
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, -1]
stack: [6]
i = 7
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, -1]
stack: [7, 6]
i = 8
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [0, 6]
i = 9
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [1, 6]
i = 10
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [2, 1, 6]
i = 11
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [3, 2, 1, 6]
i = 12
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [4, 2, 1, 6]
i = 13
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [5, 4, 2, 1, 6]
i = 14
res[]: [8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
stack: [6, 6]
[8, 1111111, 1111111, -2, 1111111, 1111111, -1, 1]
Process finished with exit code 0