1function nextGreaterElement(arr) {
2 const ans = new Array(arr.length).fill(-1);
3 const stack = []; // 存下标,单调递增
4 for (let i = 0; i < arr.length; i++) {
5 while (stack.length && arr[stack.at(-1)] < arr[i]) {
6 const top = stack.pop();
7 ans[top] = arr[i];
8 }
9 stack.push(i);
10 }
11 return ans;
12}