代码随想录算法训练营day58 | LeetCode 739. 每日温度 496. 下一个更大元素 I

【SystemVerilog项目实践】4.AHB-SRAMC(验证计划) 验证计划 阅读详情

739. 每日温度(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

思路:新学习的单调栈做法,实质就是用一个栈存储中间结果。在针对数组某个元素的结果没找出来之前,将数组该元素的信息存入栈中,找到结果后,再从栈中删除该元素的信息。

vector<int> dailyTemperatures(vector<int>& temperatures) {
    int size = temperatures.size();
    vector<int> result(size, 0);
    stack<int> st;
    st.push(0);
    for(int i=1; i<size; i++){
        if(temperatures[i]<=temperatures[st.top()]){
            st.push(i);
        }else{
            while(!st.empty() && temperatures[i]>temperatures[st.top()]){
                result[st.top()] = i-st.top();
                st.pop();
            }
            st.push(i);
        }
    }
    return result;
}

496. 下一个更大元素 I(题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

思路:和上题非常相似,只需在针对数组元素找到结果删除栈中该元素之际,判断该元素是否在另一数组中出现。因此本题需要用到unordered_map。

vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {
    int size1 = nums1.size();
    int size2 = nums2.size();
    vector<int> result(size1, -1);
    unordered_map<int, int> umap;
    for(int i=0; i<size1; i++) umap[nums1[i]] = i;
    stack<int> st;
    st.push(0);
    for(int i=1; i<size2; i++){
        if(nums2[i]<=nums2[st.top()]){
            st.push(i);
        }else{
            while(!st.empty() && nums2[i]>nums2[st.top()]){
                if(umap.count(nums2[st.top()])>0){
                    result[umap[nums2[st.top()]]] = nums2[i];
                }
                st.pop();
            }
            st.push(i);
        }
    }
    return result;
}

高德地图 搜索和点击定位 高德地图vue 阅读详情

相关推荐

Python爬虫实战:使用最新技术爬取新华网新闻数据

在当今信息爆炸的时代,网络爬虫技术已经成为获取互联网数据的重要手段。作为国内权威新闻媒体,新华网每天发布大量高质量的新闻内容,这些数据对于舆情分析、市场研究、自然语言处理等领域具有重要价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的新华网新闻爬虫系统。本文详细介绍了如何使用Python最新技术栈构建一个高效、稳定的新华网新闻爬虫系统。我们从基础爬虫开始,逐步添加了代理支持、用户代理轮换、请求延迟、重试机制、动态页面渲染、数据存储等高级功能,最终实现了一个生产可用的分布式爬虫系统。

2201_76125261的博客 1754

代码随想录算法训练营Day58 ||leetCode 739. 每日温度 || 496.一个更大元素 I

因为nums1是nums2的子集,所以将num1哈希一下,然后把nums2按照上面单调栈的情况处理,只不过每一步需要判断一下,当遇到更大的值时,st.top()是否在哈希表中出现过。出现的话就保存结果。将每个温度对应的下标入栈,当遇到更大的值以后,将result[st.top()]=i-st.top(),循环执行,直到在再没有更小的值。496.一个更大元素 I。

qq_44884699的博客 423

新能源汽车整车控制器(VCU)深度全解:硬件原理、工作流程、接口设计与高压安全实战

整车控制器(VCU,Vehicle Control Unit)是新能源纯电动、混动汽车的核心决策大脑,相当于汽车的“中枢神经系统”。它不直接驱动电机,却统筹电机控制器(MCU)、电池管理系统(BMS)、充电机(OBC)、DC/DC、空调、热管理、底盘等全部部件,负责驾驶意图解析、动力输出控制、高压上下电管理、故障安全保护、能量优化等关键任务。VCU所有设计均围绕车规级环境适应性、功能安全(ISO 26262)、实时性、高压安全性四大核心目标,与通用控制器完全不同。

CSDN-新能源汽车研发测试专业博主 701

代码随想录算法训练营Day58 | 单调栈(1/3) LeetCode 739. 每日温度 496.一个更大元素 I

动态规划结束了,来到最后一块内容:单调栈了,一共就三天的内容。

记录学习每一天! 338

代码随想录训练营Day58| 739. 每日温度 496.一个更大元素 I

496.一个更大元素 I - 力扣(LeetCode739. 每日温度 - 力扣(LeetCode496.一个更大元素 I。496.一个更大元素 I。

weixin_44174445的博客 822

代码随想录算法训练营day58|739. 每日温度496.一个更大元素 I

单调栈day1

weixin_52121600的博客 659

代码随想录算法训练营Day58单调栈:739.每日温度496.一个更大元素|

代码随想录算法训练营Day58单调栈:739.最大温度496.一个更大元素|

weixin_57956443的博客 510

代码随想录算法训练营Day58|739. 每日温度496.一个更大元素 I

代码代码随想录算法训练营Day58|739. 每日温度496.一个更大元素 I。

Magical_Jasen的博客 572

代码训练营day 58 739. 每日温度 & 496.一个更大元素 I

代码训练营 day58

weixin_48494936的博客 379

代码随想录算法训练营day58|单调栈|739. 每日温度|496.一个更大元素 I

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更大的数字,因此输出 -1。输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]

xinrenne的博客 313

代码随想录算法训练营day58| 739. 每日温度496.一个更大元素 I

单调栈

weixin_45368277的博客 456

代码随想录算法训练营day58

题目说如果不存在对应位置就输出 -1 ,所以result数组如果某位置没有被赋值,那么就应该是是-1,所以就初始化为-1。在遍历nums2的过程中,我们要判断nums2[i]是否在nums1中出现过,因为最后是要根据nums1元素的下标来更新result数组。

weixin_44806531的博客 285

LeetCode 739每日温度 496一个更大元素 | 代码随想录25期训练营day58

# 单调栈1

weixin_66706867的博客 280

代码随想录训练营day58 ||739. 每日温度496.一个更大元素 I

思路:该题用暴力法在力扣上通过不了,因此使用栈减低时间复杂度。首先该栈是按照从小到大的顺序排列,记录元素的小标。天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。如果不存在下一个更大元素,那么本次查询的答案是。,表示每天的温度,返回一个数组。

weixin_56969073的博客 339

代码随想录训练营】【Day58】第十章|单调栈|739.每日温度496.一个更大元素 I

代码随想录训练营】【Day58】第十章|单调栈|739.每日温度496.一个更大元素 I

士多啤梨先生の博客 302

代码随想录算法训练营 day58|739. 每日温度496.一个更大元素

1. 什么时候用单调栈?通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时就要想到可以用单调栈。单调栈的本质是空间换时间,更直白来说,就是用一个栈来记录我们遍历过的元素2. 单调栈里存放的元素是什么?单调栈里只需要存放元素的下标i就可以了,如果需要使用对应的元素,直接T[i]就可以获取。3. 单调栈里元素是递增呢?还是递减呢?顺序是指:栈顶到栈底的顺序。求一个元素右边第一个更大元素,单调栈就是递增求一个元素右边第一个更小元素,单调栈就是递减。

weixin_42179093的博客 266

代码随想录训练营Day58-单调栈

代码随想录训练营58

weixin_38255385的博客 344

代码随想录算法训练营day58|739.每日温度496.一个更大元素I 剑指offer14-I、57-II、62

unordered_map底层实现是哈希表,查找效率是O(1),map和multimap底层实现是红黑树,查找效率是O(logn),所以选择unordered_map。同时也要注意之后的比较结果会把之前的结果覆盖,但是我们要的是第一个比当前元素大的元素。单调栈适合于求当前元素左面或者右面第一个比当前元素大或者小的元素。找右边比当前元素大的元素,需要保持单调栈里的元素是单调递增的。主要的问题还是:1、明确单调栈里记录的是下标而不是元素值2、栈顶元素和遍历到的当前元素的区别,还是要多理解。

weixin_44735258的博客 442

算法训练营Day58(单调栈)

739. 每日温度今天正式开始单调栈,这是单调栈一篇扫盲题目,也是经典题。大家可以读题,思考暴力的解法,然后在看单调栈的解法。就能感受出单调栈的巧妙单调栈可以解决的问题:当前元素右面或者左面,,比他大或者小的元素,再做其他逻辑。

weixin_65728526的博客 523

算法训练营Day58(单调栈1)

适合寻找一个元素左边或右边第一个比自己大或小的元素其作用是用力存放之前遍历过的元素单调递减的栈是求比其小的元素单调递增的栈是求比其大的元素739. 每日温度

2301_79788081的博客 544

leetcode 56合并区间

这道题你可以把它压缩成一个非常好记的思路:先排序,再逐个比较;能合并就扩右边界,不能合并就加入答案。具体来说,先用: 把所有区间按照左端点从小到大排序。排序之后,我们只需要拿“当前区间”和 里最后一个已经合并好的区间比较。如果: 说明前一个区间的右端点比当前区间左端点还小,二者没有重叠: 所以直接: 如果不满足: 那就说明: 两个区间重叠,例如: 此时左端点不用动,只需要把右端点扩大: 所以整道题可以记成: 这道题容易忘的函数/语法 含义:对整个 排序。对于:

qq_63176310的博客 227

31省(2000-2023年)及286个地级市(2000-2022年)城镇化率-可编辑mxd文件+标准shape文件+标准成图TIF+Excel文件

本资源为31省(2000-2023年)及286个地级市(2000-2022年)城镇化率数据,数据格式为标准shape文件(仅31省数据)及Excel文件(31省+286地级市)。注:对于城镇化率数据指标的计算,使用的公式是城镇常住人口/(城镇常住人口 + 乡村常住人口)。本数据集系统记录了2000年至2023年中国31个省级行政区以及2000年至2022年全国286个地级市的城镇化率变化情况,构建了覆盖全国主要行政层级、时间跨度超过20年的高质量面板数据。城镇化率反映了区域人口结构、土地利用、经济活动集聚等方面的发展进程。该数据集主要来源于国家统计局发布的年度统计公报、统计年鉴以及《中国城市统计年鉴》等权威资料,并对部分缺失或不一致年份进行了合理插补与标准化处理。数据具有一致性强、时间连续、空间覆盖广的特点,广泛适用于城市发展演化分析、区域比较研究、社会经济建模、双碳目标评估等领域,为学术研究与政策制定提供坚实的数据基础。资源中包含可编辑mxd文件,方便用户根据自身做图喜好随意修改;包含的标准成图TIF格式,用户可直接拿来使用;还包括中国省级行政区划标准shape文件,方便用户根据实际需要裁剪各省级信息。注意:仅对省级城镇化率数据制作了shp文件并加载到mxd文件中,286个地级市城镇化率数据仅有Excel版本数据。原始数据来源真实可靠,请放心使用(根据原始数据进行汇总整理,并形成shp文件,进一步形成本资源,注重保留原始数据的真实性)。打开mxd文件前,记得解压所有压缩文件夹。整理本资源花费了较多时间,如遇问题,请随时联系博主本人:一ge科研小菜菜。资源上传日期:2025年5月13日。

中国各省数字经济指数数据(2011-2023年)

01、数据介绍中国各省级数字经济指数是指根据相关指标和权重,对各省的数字经济发展水平进行评估和比较的指数。该指数通常基于多个维度,包括数字化基础设施、数字产业化、产业数字化、等方面的发展情况。这些指标可以反映各省份在数字经济领域的竞争力和发展潜力,为政策制定和投资决策提供参考。数据名称:中国各省级数字经济指数数据数据年份:2011-2023年02、相关数据及指标省份 id 年份 互联网宽带接入率 互联网普及率 移动电话设施规模 长途光缆线路长度 网页数 域名数 人均电信业务总量 移动电话普及率 信息传输、软件和信息技术服务业法人单位数 信息软件业就业人员占比 国内专利申请授权量 国内专利申请受理量 数字普惠金融 有电子商务交易活动的企业数比重 电子商务销售额 每百家企业拥有网站数 二三产业增加值 科技创新投入 快递量 数字经济指数

上一篇: 代码随想录算法训练营day57 | LeetCode 647. 回文子串 516. 最长回文子序列
下一篇: 代码随想录算法训练营day59 | LeetCode 503. 下一个更大元素 II 42. 接雨水
_porter
博客等级 码龄7年 3粉丝 · 54原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_porter

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

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

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

打赏作者

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

抵扣说明:

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

余额充值