Day59(503, 42)

这篇具有很好参考价值的文章主要介绍了Day59(503, 42)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

503. Next Greater Element II

Given a circular integer array nums (i.e., the next element of nums[nums.length - 1] is nums[0]), return the next greater number for every element in nums.

The next greater number of a number x is the first greater number to its traversing-order next in the array, which means you could search circularly to find its next greater number. If it doesn’t exist, return -1 for this number.

Example 1:

Input: nums = [1,2,1]
Output: [2,-1,2]
Explanation: The first 1’s next greater number is 2;
The number 2 can’t find next greater number.
The second 1’s next greater number needs to search circularly, which is also 2.

Example 2:

Input: nums = [1,2,3,4,3]
Output: [2,3,4,-1,4]

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

42. Trapping Rain Water

Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining.

Example 1:

Day59(503, 42)

Input: height = [0,1,0,2,1,0,1,3,2,1,2,1]
Output: 6
Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped.

Example 2:

Input: height = [4,2,0,3,2,5]
Output: 9文章来源地址https://www.toymoban.com/news/detail-421069.html

class Solution {  
    public int trap(int[] height) {  
        int length = height.length;  
        if (length <= 2) return 0;  
        int[] maxLeft = new int[length];  
        int[] maxRight = new int[length];  
          
        maxLeft[0] = height[0];  
        for (int i = 1; i< length; i++) maxLeft[i] = Math.max(height[i], maxLeft[i-1]);  
          
        maxRight[length - 1] = height[length - 1];  
        for(int i = length - 2; i >= 0; i--) maxRight[i] = Math.max(height[i], maxRight[i+1]);  
          
        int sum = 0;  
        for (int i = 0; i < length; i++) {  
            int count = Math.min(maxLeft[i], maxRight[i]) - height[i];  
            if (count > 0) sum += count;  
        }  
        return sum;  
    }  
}

到了这里,关于Day59(503, 42)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何设置element ui选择结束时间为23:59:59?

    两个方法,不过都是针对于传值给后端做的处理,不包括前端展示

    2024年02月11日
    浏览(37)
  • day59

     503.下一个更大元素II   42. 接雨水    503.下一个更大元素II  这道题和 739. 每日温度 几乎如出一辙,可以自己尝试做一做 代码随想录  42. 接雨水   接雨水这道题目是 面试中特别高频的一道题,也是单调栈 应用的题目,大家好好做做。 建议是掌握 双指针 和单调栈

    2024年02月11日
    浏览(26)
  • 算法学习day59

    题目描述: 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字x的下一个更大元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,循环搜索它的下一个更大的数。如果不存在,输出-1。 例1: 输入:[1, 2

    2023年04月14日
    浏览(27)
  • 学习day59

    昨天学了插槽,但是没有即笔记了 今天的是vuex 总体来说,vuex就是一个共享单车,每个人都可以使用他,也可也对他进行反馈。即把一个数据列为vuex,然后每个组件可以使用这个对象,也可也反过来反馈他 这一个设计是将A组件的一个数据作为公共来共享 求和案例,纯vue版

    2024年02月09日
    浏览(33)
  • 代码随想录day59

    647. 回文子串 给你一个字符串  s  ,请你统计并返回这个字符串中  回文子串  的数目。 回文字符串  是正着读和倒过来读一样的字符串。 子字符串  是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不

    2024年02月07日
    浏览(45)
  • 力扣算法刷题Day59|单调栈

    力扣题目:# 503.下一个更大元素II  刷题时长:参考题解后2min 解题方法:单调栈 复杂度分析 时间O(n) 空间O(n) 问题总结 如何解决环的问题 本题收获 循环数组解决方案 思路一:将两个nums数组拼接在一起,使用单调栈计算出每一个元素的下一个最大值,最后再把结果集即res

    2024年02月13日
    浏览(75)
  • 力扣labuladong一刷day59天动态规划

    力扣labuladong一刷day59天动态规划 一、509. 斐波那契数 题目链接:https://leetcode.cn/problems/fibonacci-number/description/ 思路:这是非常典型的一道题,下面是优化过的代码,a,b就是dp数组,因为每计算一个值,需要前两个值,这个a,b就是用来记录前两个值,避免重复计算,递推公式便

    2024年01月21日
    浏览(48)
  • day42

    外键(表与表之间的关系) 一对多 多对多 一对一 多表查询相关(核心) Navicat可视化软件 多表查询练习题(可能有些复杂,当堂不一定能消化) python操作MySQL 事务 表与表之间建立关系 表与表之间只有三种关系:一对一,多对一,一对多 在MySQL的关系中没有多对一的说法 定义一张

    2024年02月08日
    浏览(53)
  • day42_jsp

    零、 复习昨日 一、JSP 二、EL 三、JSTL 四、MVC 现有问题 在之前学习Servlet时,服务端通过Servlet响应客户端页面,有什么不足之处? 开发方式麻烦:继承父类、覆盖方法、配置Web.xml或注解 代码修改麻烦:重新编译、部署、重启服务 显示方式麻烦:获取流、使用println(“”);逐

    2024年02月06日
    浏览(45)
  • Day 42 动态规划 4

    代码随想录 1. 思路 背包问题的主要特征为, 在有限制的情况下满足最优化 ,因此可以构造二维dp数组,一个维度记录成本,一个维度记录收益,一步步寻找最优解。 (1)dp数组以及下标含义 dp[i][j]代表0-i的物品, 在j的背包容量下,可以形成的最大价值 。注意,这里 i为序

    2024年01月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包