网站维护服务,网站设计分工,推广不收费的网站有哪些,建设银行网站注销503. 下一个更大元素 II
解题思路 参考496. 下一个更大元素 I 首先计算nums2的每一个元素的下一个比他大的元素#xff0c;使用单调栈 将上面的结果和nums2中的每一个元素组成映射map 针对每一个Nums1的元素 查询map 记录map 的value 但是这个是循环的数组元素 class So…503. 下一个更大元素 II
解题思路 参考496. 下一个更大元素 I 首先计算nums2的每一个元素的下一个比他大的元素使用单调栈 将上面的结果和nums2中的每一个元素组成映射map 针对每一个Nums1的元素 查询map 记录map 的value 但是这个是循环的数组元素 class Solution {public int[] nextGreaterElements(int[] nums) {// 使用单调栈计算 改造算法 只不过数组元素可以循环int n nums.length;// 存放答案的数组int[] res new int[n];StackInteger s new Stack();for(int i 2 * n - 1; i 0; i--){// 判断各自高矮while(!s.isEmpty() s.peek() nums[i % n]){s.pop();}// 存放比当前元素大的元素res[i % n] s.isEmpty()? -1:s.peek();s.push(nums[i % n]);}return res;}
}