0
点赞
收藏
分享

微信扫一扫

计算机组成原理-主存储器与CPU的连接

古得曼_63b6 2023-11-21 阅读 52

前言

LeetCode T503 下一个最大元素II

题目链接:503. 下一个更大元素 II - 力扣(LeetCode)

题目思路:

题目代码:

class Solution {
    public int[] nextGreaterElements(int[] nums) {
        int[] res = new int[nums.length];
        Arrays.fill(res,-1);
        Stack<Integer> st = new Stack<>();
        st.push(0);
        for(int i = 0;i<2*nums.length;i++){
            int k = i%nums.length;
            if(nums[k]<=nums[st.peek()]){
                st.push(k);
            }else{
                while(!st.isEmpty() && nums[k]>nums[st.peek()]){
                    res[st.peek()] = nums[k];
                    st.pop();
                }
                st.push(k);
            }

        }
        return res;


    }
}

LeetCode T42 接雨水

题目链接:42. 接雨水 - 力扣(LeetCode)

题目思路:

题目代码:

class Solution {
    public int trap(int[] height) {
        if(height.length<=2){
            return 0;
        }
        int sum = 0;
        Stack<Integer> st = new Stack<>();
        st.push(0);
        for(int i = 1;i<height.length;i++){
            if(height[i]<=height[st.peek()]){
                st.push(i);
            }else{
                while(!st.isEmpty() && height[i]>height[st.peek()]){
                    int tmp = st.peek();
                    st.pop();
                   if(!st.isEmpty()){
                        int h = Math.min(height[i],height[st.peek()])-height[tmp];
                        int w = i-st.peek()-1;
                        sum += h*w;
                   }
                    
                }
                st.push(i);
               
            }
        }
        return sum;

    }
}
举报

相关推荐

0 条评论