代码随想录训练营Day59|503.下一个更大元素II ;42. 接雨水

 503.下一个更大元素II 

class Solution {
    public int[] nextGreaterElements(int[] nums) {
        int[] res = new int[nums.length];
        Arrays.fill(res, -1);
        Stack st =new Stack<>();
        
        for(int i=0;i nums[st.peek()]) {
                res[st.peek()] = nums[i % nums.length];//更新result
                st.pop();//弹出栈顶
            }
            st.push(i % nums.length);
        }
        return res;
    }
}

代码随想录训练营Day59|503.下一个更大元素II ;42. 接雨水_第1张图片 

 

42. 接雨水 

class Solution {
    public int trap(int[] height) {
        int sum=0;
        Stack st = new Stack<>();
        st.push(0);
        for(int i=1;i height[st.peek()]){
                    int mid = st.pop();

                    if(!st.isEmpty()){
                        int h = Math.min(height[i], height[st.peek()]) - height[mid];
                        int w = i-st.peek()-1;
                        sum += h*w;
                    }
                }
                st.push(i);
            }
        }
        return sum;
    }
}

代码随想录训练营Day59|503.下一个更大元素II ;42. 接雨水_第2张图片

 

你可能感兴趣的:(算法,leetcode,java)