代码随想录算法训练营 | 42. 接雨水,84. 柱状图中最大的矩形

news/2024/10/22 2:17:37

42. 接雨水
题目链接:42. 接雨水
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰接雨水
日期:2024-10-21

Java代码如下:

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

84. 柱状图中最大的矩形
题目链接:84. 柱状图中最大的矩形
文档讲解︰代码随想录(programmercarl.com)
视频讲解︰柱状图中最大的矩形
日期:2024-10-21

Java代码如下:

class Solution {int largestRectangleArea(int[] heights) {Stack<Integer> st = new Stack<Integer>();int [] newHeights = new int[heights.length + 2];newHeights[0] = 0;newHeights[newHeights.length - 1] = 0;for (int index = 0; index < heights.length; index++){newHeights[index + 1] = heights[index];}heights = newHeights;st.push(0);int res = 0;for (int i = 1; i < heights.length; i++) {if (heights[i] > heights[st.peek()]) {st.push(i);} else if (heights[i] == heights[st.peek()]) {st.pop();st.push(i);} else {while (heights[i] < heights[st.peek()]) {int mid = st.peek();st.pop();int left = st.peek();int right = i;int w = right - left - 1;int h = heights[mid];res = Math.max(res, w * h);}st.push(i);}}return res;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74442.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

帝国cms伪静态设置方法

众所周知,动态页面不利于收录和排名。伪静态可以完美的解决这问题,配合百度云加速等免费CDN,可以让动态页面有静态页面一样快的访问速度。今天我给大家带来帝国CMS伪静态的详细设置方法。 1.栏目设置为动态访问修改单个栏目属性,如下图批量修改栏目属性,如下图:2.首页也设…

Termux使用的一些细节

开启ssh pkg i openssh # 启动ssh服务 sshd # 设置密码 passwd # 查看本机ip,找到wlan0或者直接找192开头的ip ifconfig默认的端口是8022。 有不少教程是写一个whoami命令,但是我实测直接使用root作为用户名即可(和root权限无关)以下是ssh配置的路径,有端口号等信息/data/…

[Linux Mint]安装搜狗输入法

造冰箱的大熊猫@cnblogs 2024/10/22, Linux Mint 1、从官网下载搜狗拼音输入法的deb包2、安装deb包sudo apt deb sogoupinyin.deb 3、设置输入法框架 - 启动Input Method,将“Input method framework”设置为fcitx - 选择“Simplified Chinese”,点击“Install the language…

chapter4

通过python process.run.py -h命令了解了process.run.py的可用的选项 题外话(关于/home目录的): /home 目录是 Linux 系统中用于存储用户个人文件的地方。每个用户在 /home 下都有一个以其用户名命名的子目录,用于存放该用户的个人数据和设置。以下是一些 /home 目录的特点…

如何以最简单的方式传输文件到开发板上-lrzsz-ZModem

在某鱼上闲逛的时候,看到树莓派A+这个型号的板子,很便宜30来块钱,有6ULL的性能。 但是既没有网口、也没有WiFi,只有一个usb,电脑和它传数据岂不是非常麻烦?其实有一个非常好用的协议叫ZModem,它的设计就是主要为了能在串口这种几乎无需配置的连接协议上传输文件。类似的…

东山Pi柒号-3-STM32MP1 引导链概述

进行移植前先看看ST官网的一些资料,了解芯片的工作方式: STM32MP1 引导链概述 https://wiki.stmicroelectronics.cn/stm32mpu/wiki/STM32MP1_boot_chain_overview启动步骤如下BROM(BL1):芯片内部程序,根据BOOT PIN读取对应启动设备里的程序到内部SYSRAM执行,工作在在Secur…

派生类

派生类 1. 派生类2. 派生类对象定义时调用构造函数的顺序 Man man;3. public、protected、private 4. 函数遮蔽

2024年好用的短链接短网址工具推荐

小码短链接,作为一款专业的短链接生成和统计工具,能够帮助您轻松应对各种场景需求,让运营工作变得简单高效。 小码短链接功能介绍 1. 链接缩短 小码短链接不仅可以缩短您的原始链接,还可以提供简洁美观的短链接形式。通过短链接,您可以有效地减少短信或营销内容的字数,从…