代码随想录五刷day11

代码随想录-035期-算法训练营【博客笔记汇总表】 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


``

一、力扣739. 每日温度

class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        Deque<Integer> deq = new LinkedList<>();
        int n = temperatures.length;
        int[] res = new int[n];
        deq.offerLast(0);
        for(int i = 1; i < n; i ++){
            if(temperatures[i] < temperatures[deq.peekLast()]){
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty() && temperatures[i] > temperatures[deq.peekLast()]){
                    int idx = deq.pollLast();
                    res[idx] = i - idx;
                }
                deq.offerLast(i);
            }
        }
        return res;
    }
}

二、力扣496. 下一个更大元素 I

class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int[] res = new int[nums1.length];
        Arrays.fill(res,-1);
        Deque<Integer> deq = new LinkedList<>();
        Map<Integer,Integer> map = new HashMap<>();
        for(int i = 0; i < nums1.length; i ++){
            map.put(nums1[i], i);
        }
        deq.offerLast(0);
        for(int i = 1; i < nums2.length; i ++){
            if(nums2[i] < nums2[deq.peekLast()]){
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty() && nums2[i] > nums2[deq.peekLast()]){
                    int idx = deq.pollLast();
                    if(map.containsKey(nums2[idx])){
                        int cur = map.get(nums2[idx]);
                        res[cur] = nums2[i];
                    }
                }
                deq.offerLast(i);
            }
        }
        return res;
    }
}

三、力扣503. 下一个更大元素 II

class Solution {
    public int[] nextGreaterElements(int[] nums) {
        int n = nums.length;
        int[] arr = new int[n];
        Arrays.fill(arr, -1);
        int[] temp = new int[2*n];
        for(int i = 0; i < 2*n; i ++){
            temp[i] = nums[i%n];
        }
        Deque<Integer> deq = new LinkedList<>();
        deq.offerLast(0);
        for(int i = 1; i < 2*n; i ++){
            if(temp[i] < temp[deq.peekLast()]){
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty() && temp[i] > temp[deq.peekLast()]){
                    int idx = deq.pollLast();
                    arr[idx % n] = temp[i];
                }
                deq.offerLast(i);
            }
        }
        return arr;
    }
}

四、力扣42. 接雨水

class Solution {
    public int trap(int[] height) {
        Deque<Integer> deq = new LinkedList<>();
        int sum = 0;
        deq.offerLast(0);
        if(height.length == 2){
            return 0;
        }
        for(int i = 1; i < height.length; i ++){
            int pre = height[deq.peekLast()];
            if(height[i] < pre){
                deq.offerLast(i);
            }else if(pre == height[i]){
                deq.pollLast();
                deq.offerLast(i);
            }else{
                while(!deq.isEmpty() && height[i] > pre){
                    int mid = height[deq.pollLast()];
                    if(!deq.isEmpty()){
                        int p = deq.peekLast();
                        int h = Math.min(height[p], height[i]) - mid;
                        int c = i - p - 1;
                        if(h*c > 0){
                            sum += h*c;
                        }
                        pre = height[deq.peekLast()];
                    }
                }
                deq.offerLast(i);
            }
        }
        return sum;
    }
}

五、力扣84. 柱状图中最大的矩形

class Solution {
    public int largestRectangleArea(int[] heights) {
        int res = 0;
        Deque<Integer> deq = new LinkedList<>();
        int[] arr = new int[heights.length + 2];
        arr[0] = 0;
        arr[arr.length-1] = 0;
        for(int i = 0; i < heights.length; i ++){
            arr[i+1] = heights[i];
        }
        deq.offerLast(0);
        if(heights.length == 1){
            return heights[0];
        }
        for(int i = 1; i < arr.length; i ++){
            int right = arr[deq.peekLast()];
            if(arr[i] >= right){
                deq.offerLast(i);
            }else{
                while(arr[i] < arr[deq.peekLast()]){
                    int mid = deq.pollLast();
                    int pre = deq.peekLast();
                    int w = i - pre - 1;
                    int h = arr[mid];
                    res = Math.max(res, h*w);
                }
                deq.offerLast(i);
            }
        }
        return res;
    }
}
3分钟学会SQL中的断点去重技术,轻松搞定连续重复数据去重问题? 传感器采集的温度数据中,存在连续重复的值,需仅在数值变化时保留记录(例如:温度从 25°C 变为 26°C 时记录一次)。:判断逻辑,current_value!若当前温度与前一行的温度不同(或为第一条记录),则保留该行。的技术,常用于时间序列或状态日志中。:将连续相同值的记录合并,只保留断点处的记录。保留断点处的记录(即温度变化时的第一条)。原始数据表 sensor_data。最终仅保留值变化的断点记录。获取前一行的温度值。 阅读详情

相关推荐

告别玄学调试:用STM32CubeMX和逻辑分析仪搞定DP83848的RMII与SMI接口

本文详细介绍了如何使用STM32CubeMX和逻辑分析仪调试DP83848的RMII与SMI接口,帮助开发者超越表象,直接观察底层通信波形。通过实战案例和高级调试技巧,解决常见问题如时钟偏移、信号完整性等,提升网络接口的稳定性和可靠性。

weixin_30752699的博客 299

【代码随想录训练营第42期 打卡总结 - 刷题记录】

打卡总结

记得要努力变强 1665

五子棋AI算法第一篇-我对谷歌Alphago的看法

最近Google宣布他们的围棋AI以5:0的战绩打败欧洲围棋三冠王。我一直对人工智能比较感兴趣,正好趁年前空闲的几天用JS写了一个五子棋的AI。其实很久以前就用自创的算法写过一个JAVA版的五子棋AI,不过棋力很不理想。这次用的是JS写的,所以无论任何平台上只要能打开网页的都可以玩。google爆出这个新闻之后,很多人觉得这是不是意味着电脑智商已经在人类之上了,围棋已经没有意义了之类的。甚至觉得这是

言川的博客 2万+

代码随想录day11

这道题第一次写,主要的收获是明白了大顶堆和小顶堆的概念,本质上是完全二叉树,大顶堆也就是根节点大于他的子节点,可以用优先级队列来模拟(priority_queue),这是一种特殊的队列,会自己维护队列的顺序(默认是大顶堆)之前写过这道题,就是用单调队列来模拟(本题队首到队尾依次递减),遍历数组,每次把比当前小的弹出(比当前小不可能是最大),然后在进行一个窗口大小的检查,超出窗口就弹出。用一个栈来存储,碰到相同的就弹出,遍历完一次之后,就没用重复的了。.删除字符串中的所有相邻重复项。

W94789888的博客 1519

人工智能之语言领域 自然语言处理 第六章 情感分析

情感分析(Sentiment Analysis),又称意见挖掘(Opinion Mining),旨在自动识别和提取文本中表达的主观情感、态度或情绪。从用户评论到社交媒体,从产品反馈到政治舆情,情感分析已成为企业决策、品牌监控和人机交互的关键技术。本章将深入介绍情感分析的层级结构、核心技术、主流模型,并通过社交媒体舆情实战案例完整演示分析与可视化流程。层级目标示例词级(Word-level)判断单个词的情感倾向“好” → 正面;“差” → 负面句级(Sentence-level)判断整个句子的情感极性。

咚咚王者的博客 856

Windows 10错误代码解析与系统故障排除指南

操作系统错误代码是系统运行状态的直接反馈,Windows系统通过特定编码机制将故障信息转化为可识别的错误代码。从技术原理看,这些代码通常对应特定的异常处理流程,包括内存管理、驱动兼容性、文件系统等核心模块。理解错误代码对于系统维护具有重要价值,能快速定位问题根源,提高故障排除效率。在实际应用场景中,蓝屏错误(如0x0000007B)、系统升级失败(如0x80070002)和启动故障是最常见的三类问题。通过分析dump文件、使用WinDbg工具和系统内置诊断功能,可以有效解决大部分系统异常。特别是对于蓝屏错误

weixin_30516429的博客 298

代码随想录刷题 | Day 11

理解:注意到两个相邻的滑动窗口只差了1个数(有k-1个数都是相同的),法一使用优先队列来解题(优先队列最大值自动放到队首了),最初先将前k个数连同其下标(构成的pair)存到优先队列中,后面的循环就表示我滑动窗口一个一个地向后移动,每次看一下最大元素(优先队列队首元素)在不在当前的滑动窗口中,如果不在,就出队,在的话,就不用管了,然后push进当前滑动窗口最新的值,并向ans中push_back进去当前的滑动窗口中的最大值。总结:今天的题目确实是挺不错的,自己也学了好多东西,继续加油!

2301_80138335的博客 1492

(25.08)Ubuntu20.04+ROS1复现FAST-LIO2

请确保在。

m0_69023437的博客 3992

代码随想录系统性一刷总结

指针思想很重要day01 二分查找+移除元素day02 数组平方+长度最小子数组+螺旋矩阵II。

qq_44072579的博客 1048

Fiddler Everywhere保姆级教程:10分钟搞定手机HTTPS抓包(附证书配置避坑指南)

本文提供Fiddler Everywhere移动端HTTPS抓包的保姆级教程,涵盖环境配置、代理设置、证书安装及常见问题排查。重点解析如何正确安装并信任Fiddler根证书以解密HTTPS流量,帮助开发者快速搭建抓包环境,高效分析应用网络行为,提升调试效率。

git9versioner的博客 705

2026年医疗AI的可信革命全栈实现(上)

医疗AI可信化:贝叶斯网络与向量数据库的协同架构 本文探讨2026年医疗AI发展的关键转折点——从追求生成能力转向构建可信决策系统。核心观点认为,医疗AI下一阶段的竞争焦点在于不确定性量化和错误传播约束,而非单纯的问答流畅度。研究提出以Python为开发语言、结合向量数据库与贝叶斯网络的混合架构: 技术分层 语言层(LLM):处理自然语言交互与工具调用 证据层(Milvus/Qdrant):实现可审计的临床知识检索 概率层(pgmpy/PyMC):执行贝叶斯推理与风险路由 治理层:确保权限控制与人工复核机制

AllenLV的博客 1151

代码随想录刷题day11

感悟:层序遍历就是按照一层一层遍历,广度优先遍历就从此而来。非递归的写法需要借助一个队列。感悟:二叉树的递归遍历有模版可以套用,如下。1、二叉树的递归遍历。2、二叉树的层序遍历。

LL_xjbt的博客 202

【ODX介绍】-4.2-UDS诊断$27服务在ODX-D诊断描述文件中如何描述

共25页精讲:附ODX-D XML:UDS $27 Security服务0x61和0x62 Sub-Function,其它Sub-Function可参照其格式。 目录 1 ODX-D描述一个UDS $27 Security服务Sub-Function的结构 2 标签DIAG-SERVICE描述的内容 2.1 举例:DIAG-SERVICE的XML描述 3 标签REQUEST描述的内容 3.1 举例:REQUEST的XML描述 4 标签POS-RESPONSE描述的内容 4.1 举例:PO..

「汽车电子助手」的博客 1121

代码随想录|day 11

求助:请问力扣周赛我总是错过怎么办,有什么通知机制嘛,要开始了发邮件通知我一下这样。如果有想要开始刷题的朋友正好看到此刻我的学习过程,或许会对你有帮助,那就是我记录的第二意义了。

donge520的博客 731

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

代码随想录算法训练营day11

今天是算法营的第11天,希望自己能够坚持下来!今日任务:● 150. 逆波兰表达式求值● 239. 滑动窗口最大值● 前 K 个高频元素● 总结今天主要是学习了:1.栈适合解决一些临近元素之间操作的问题2.deque和优先级队列的用法明天继续加油!

qq_38365428的博客 531

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

代码随想录第五十八期day11

对于push来说,我们要保持他单调的话,必须要用while,因为里面不止执行一次,所以当单调队列不为空并且要加入到值大于单调队列最右边的值时候就一直这样找,直到找到小于的地方,才不把里面元素弹出,把要加入的元素加入。首先我们先实现单调队列,cpp构造一个类,重置里面pop,push方法,对于pop来说,只要单调队列不为空,并且要删除的值等于单调队列里面的最左边的值(即最大值)就可以删掉它了。如果都不是,那么不用执行任何操作。输入:tokens = [“10”,“6”,“9”,“3”,“+”,“-11”,“

qq_64919637的博客 603

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

代码随想录Day11

AC代码。

HNTZB的博客 292

代码随想录刷题day30

感悟:总结一个递推公式,完全背包求解背包获得最大价值的递推公式为:dp[i][j] = max(dp[i - 1][j], dp[i][j - weight[i]] + value[i]),而装满背包的递推公式为:dp[i][j] = dp[i - 1][j] + dp[i][j - nums[i]]。感悟:本题的特殊之处在于,顺序不同的序列当做不同的组合,对于这种强调顺序的情况,适用于用一维动态数组,遍历顺序需要有不一样的调整。感悟:背包为n,物品为完全平方数,完全平方数为每个整数平方所得。

LL_xjbt的博客 579

代码随想录第38期Day11

今天是跟着代码随想录刷题的第11天,主要学习了以下内容:20.有效的括号、1047.删除字符串中的所有相邻重复项和150.逆波兰表达式求值这三个内容。今天已经第18天了,补的前面内容。有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值。

wcy200097的博客 343

代码随想录刷题题Day11

代码随想录刷题第十一天,本文详细介绍了二叉树理论基础,利用C++/Python实现了二叉树的遍历

BigDavid123的博客 973

代码随想录Day10

根据 逆波兰表示法,求表达式的值。有效的运算符包括 + , - , * , /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。题目思路:这道题属于是老题新做了,是一道很经典的使用栈结构来解决的问题,核心思路就是遇到运算符时弹出栈顶的前两个做对应的运算,再将对应的运算结果压回栈等待下一次运算,最后返回栈顶的元素就是就是运算的结果AC代码。

HNTZB的博客 739

代码随想录Day5

快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。题意:给定两个数组,编写一个函数来计算它们的交集。

HNTZB的博客 864

代码随想录刷题笔记-Day11

150. 逆波兰表达式求值给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。

qq_53711959的博客 1188

代码随想录Day26

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在xstart和xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为x``startx``end, 且满足,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points返回引爆所有气球所必须射出的弓箭数。

penn的博客 772

代码随想录Day06

交集不重复,就可以考虑用unordered_set(unordered_set为无序集合,数值不可以重复,可以更改数值,底层实现红黑树),通过将nums1映射为哈希表,在将数组2遍历,查询该哈希表中是否有该元素,有的话就将结果存储到result表中。思路:这道题可以看出来有两个部分都需要查找,首先是数组的值需要查找,再是数组的下标也需要查找,所以这道题可以使用map,map中有key和value,但是因为本题最后返回的是数组下标,所以可以将数组元素放入key中,数组下标放入value中。

qq_45630686的博客 693

代码随想录算法训练营Day35

卡码网46.携带研究材料 力扣494.目标和【meidum】 力扣416.分割等和子集【medium】

lololo的博客 736
上一篇: 代码随想录五刷day10
下一篇: 代码随想录五刷day12
乱世在摸鱼
博客等级 码龄6年 618粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乱世在摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值