1process.stdin.resume(); 2process.stdin.setEncoding('utf-8'); 3let input = ''; 4 5process.stdin.on('data', (data) => { 6 input += data; 7}); 8 9process.stdin.on('end', () => { 10 let inputArray = input.trim().split(' '); 11 let result = nextGreaterElementsInterval(inputArray); 12 console.log(result.join(' ')); 13 process.exit(); 14}); 15 16function nextGreaterElementsInterval(nums) { 17 const n = nums.length; 18 const result = new Array(n).fill(0); 19 const stack = []; 20 21 for (let i = 0; i < n; i++) { 22 while (stack.length > 0) { 23 const index = stack[stack.length - 1]; 24 if (nums[i] > nums[index]) { 25 result[index] = i - index; 26 stack.pop(); 27 } else { 28 break; 29 } 30 } 31 stack.push(i); 32 } 33 34 return result; 35}
Copyright ©2010-2022 比特日记 All Rights Reserved.
Powered By 可尔物语