当前位置: 首页 > news >正文

代码随想录算法训练营第五十八天| 739 每日温度 496 下一个更大元素 |

目录

739 每日温度

496 下一个更大元素 |


739 每日温度

求后面第一个比他大的元素的位置,单调栈如果递增

求后面第一个比他小的元素的位置,单调栈需要递减

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {stack<int> st;//求的是后面第一个比他大的元素的位置,所以单调栈需要递增vector<int> res(temperatures.size(),0);//使得递增st.push(0);//存放temperatures的下标for(int i = 1;i < temperatures.size();i++){if(temperatures[i] <= temperatures[st.top()]){st.push(i);}else{while(!st.empty() && temperatures[i] > temperatures[st.top()]){//确保单调栈递增res[st.top()] = i - st.top();st.pop();}st.push(i);}}return res;}
};

时间复杂度O(n)

空间复杂度O(n) 

496 下一个更大元素 |

求后面第一个比他大的元素的位置,单调栈如果递增

求后面第一个比他小的元素的位置,单调栈需要递减

class Solution {
public:vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) {stack<int>st;vector<int>res(nums1.size(),-1);unordered_map<int,int>mp;for(int i = 0;i < nums1.size();i++){//key:下标元素 value:下标mp[nums1[i]] = i;//将nums1中的数据存放到mp中}st.push(0);//存放下标for(int i = 1;i < nums2.size();i++){if(nums2[i] <= nums2[st.top()]){//求后面第一个比他大的元素的位置,单调栈如果递增st.push(i);}else{//确保单调栈单调递增while(!st.empty() && nums2[i] > nums2[st.top()]){//找到自己的位置才停止if(mp.count(nums2[st.top()]) > 0){//nums1中存在这个元素int idx = mp[nums2[st.top()]];res[idx] = nums2[i];}st.pop();}st.push(i);}}return res;}
};

时间复杂度O(m+n)//m是nums1的长度,n是nums2的长度

空间复杂度O(n) 

相关文章:

代码随想录算法训练营第五十八天| 739 每日温度 496 下一个更大元素 |

目录 739 每日温度 496 下一个更大元素 | 739 每日温度 求后面第一个比他大的元素的位置&#xff0c;单调栈如果递增 求后面第一个比他小的元素的位置&#xff0c;单调栈需要递减 class Solution { public:vector<int> dailyTemperatures(vector<int>& tempe…...

配置自定义RedisTemplate 解决redis序列化java8 LocalDateTime

目录 配置自定义RedisTemplate 引入依赖 配置连接redis 编写测试类 出现问题 配置序列化 解决redis序列化java8 LocalDateTime 问题背景 问题描述 问题分析 解决方案一&#xff08;全局&#xff09; 解决方案二&#xff08;单个字段&#xff09; 配置自定义RedisTe…...

华为---登录USG6000V防火墙---console、web、telnet、ssh方式登录

目录 一、环境搭建 二、第一次登录USG6000V防火墙&#xff0c;即通过console方式登录 三、用户配置 四、web登录USG6000V防火墙 1. 用web创建的用户通过web方式登录USG6000V防火墙 2. 命令行创建的用户通过web方式登录USG6000V防火墙 五、ssh方式登录USG6000V防火墙 1. 用…...

css图片属性,图片自适应

CSS 图片属性指南&#xff1a;background-size 和 object-fit 在前端开发中&#xff0c;使用图片是非常常见的。为了让图片在网页中显示得更好&#xff0c;CSS 提供了多种属性来调整和控制图片的大小和布局。其中&#xff0c;background-size 和 object-fit 是两个常用的属性&a…...

【Python百宝箱】数据科学的黄金三角:数据挖掘和聚类

数据之舞&#xff1a;Python数据科学库横扫全场 前言 在当今数据驱动的时代&#xff0c;Python成为数据科学家和分析师的首选工具之一。本文将介绍一系列强大的Python库&#xff0c;涵盖了数据处理、可视化、机器学习和自然语言处理等领域。无论你是初学者还是经验丰富的数据…...

【数据结构和算法】最大连续1的个数 III

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;滑动窗口 2.2 滑动窗口解题模板 三、代码 3.1 方法一&#xff1a;滑动窗口 四、…...

AngularJS

理解实现代码的逻辑为主要&#xff0c;代码怎么写为次要。 参考资料&#xff1a; 《AngularJS入门与进阶》&#xff0c;江荣波著 前端开发常用框架 React&#xff1a;由Facebook开发&#xff0c;用于构建用户界面的JavaScript库&#xff0c;以组件化和虚拟DOM著称。 Angular&…...

初级数据结构(七)——二叉树

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;六&#xff09;——堆 | NULL 下一篇-> 1、写在前面 二叉树的基本概念在《初级数据结构&#xff08;五&#xff09;——树和二叉树的概念》中已经介绍得足够详细了。上一…...

对比学习综述

1.简介 2.相关工作 2.1、Inst Disc 代理任务&#xff1a;个体判别。把每一个图片看作是一种类别&#xff0c;把每一个图片都区分开来。 正负样本选择&#xff1a;正样本是图片本身&#xff0c;负样本是数据集里的其他图片&#xff0c;该文章从memory bank中随机抽取4096个负…...

R语言【cli】——cli_warn可以更便捷的在控制台输出警告信息

Package cli version 3.6.2 cli_warn(message, ..., .envir parent.frame()) 参数【message】&#xff1a;它是通过调用 cli_bullets() 进行格式化的。进一步地&#xff0c;还需要调用 inline-makeup&#xff08;内联标记&#xff09;。 参数【...】&#xff1a;传递给 rlan…...

从零开始创建GPTs 人人都可以编写自己的ChatGPT产品

在这个人工智能迅猛发展的时代&#xff0c;GPT&#xff08;生成式预训练变换器&#xff09;已经成为一项令人兴奋的技术&#xff0c;它打开了创意和知识的新大门。无论你是一名编程新手、一位热爱探索的学生&#xff0c;还是对未来充满好奇的专业人士&#xff0c;GPTs都可以为你…...

人工智能对网络安全的影响

技术的快速发展带来了不断增长的威胁环境&#xff0c;网络犯罪分子和恶意行为者利用我们互联世界中的漏洞。在这个数字时代&#xff0c;数据泄露和网络攻击呈上升趋势&#xff0c;仅靠传统的安全措施已经不够了。人工智能 &#xff08;AI&#xff09; 的进步彻底改变了网络安全…...

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextInput输入框组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之TextInput输入框组件 一、操作环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、TextInput 接口 TextInput(value?:{placeholder?: ResourceStr, tex…...

【C++入门到精通】互斥锁 (Mutex) C++11 [ C++入门 ]

阅读导航 引言一、Mutex的简介二、Mutex的种类1. std::mutex &#xff08;基本互斥锁&#xff09;2. std::recursive_mutex &#xff08;递归互斥锁&#xff09;3. std::timed_mutex &#xff08;限时等待互斥锁&#xff09;4. std::recursive_timed_mutex &#xff08;限时等待…...

安全狗云原生安全-云甲·云原生容器安全管理系统

随着云计算的快速发展&#xff0c;容器技术逐渐成为主流。然而&#xff0c;随着容器的普及&#xff0c;安全问题也日益突出。为了解决这一问题&#xff0c;安全狗推出了云原生容器安全管理系统——云甲。 云甲是安全狗云原生安全的重要组成部分&#xff0c;它采用了先进的云原生…...

Python 学习路线:介绍、基础语法、数据结构、算法、高级主题、框架及异步编程详解

Python 介绍 Python 是一种 高级 的、解释型 的、通用 的编程语言。其设计哲学强调代码的可读性&#xff0c;使用显著的缩进。Python 是 动态类型 和 垃圾收集 的。 基本语法 设置 Python 环境并开始基础知识。 文章链接&#xff1a;Python 安装与快速入门 变量 变量用于…...

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI+Vant 电影院订票管理系统 的设计与实现

一.项目介绍 基于SpringBootVue 电影院订票管理系统 分为前端和后端。 前端&#xff08;用户&#xff09;&#xff1a; 登录后支持查看首页、电影、影院和我的信息 支持查看正在热映和即将上映的电影信息 支持购票&#xff08;需选择影院座位&#xff09;、看过&#xff08;评论…...

轻量级购物小程序H5产品设计经典样例

主要是看到这个产品设计的不错值得借鉴特记录如下&#xff1a; 不过大多数购物app都大致相同&#xff0c;这个算是经典样例&#xff0c;几乎都可以复制&#xff0c;我第一次使用&#xff0c;感觉和顺畅。看上去产品是经过打磨的&#xff0c;布局非常好。内容也很丰富。支持异业…...

final, finally, finalize 的区别?

1.final 用于声明属性&#xff0c;方法和类&#xff0c;分别表示属性不可变&#xff0c;方法不可覆盖&#xff0c;类不可继承。 内部类要访问局部变量&#xff0c;局部变量必须定义成 final 类型 2.finally 是异常处理语句结构的一部分&#xff0c;表示总是执行 3.finalize …...

4.使用 Blazor 构建 Web 应用程序

微软官方培训 了解如何通过 Blazor Web 用户界面框架构建你的第一个 Web 应用程序。 https://learn.microsoft.com/zh-cn/training/paths/build-web-apps-with-blazor/?viewaspnetcore-8.0 8个模块 目录 微软官方培训 1.使用 Blazor 进行 Web 开发的简介 2.使用 Blazor…...

3分钟零基础入门:GPU加速MediaPipe TouchDesigner插件完整指南

3分钟零基础入门&#xff1a;GPU加速MediaPipe TouchDesigner插件完整指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 你是否曾想过在TouchD…...

别再死记硬背TTS原理了!用Python+TensorFlow复现一个简易Deep Voice,从音素到语音全流程拆解

用PythonTensorFlow实战Deep Voice&#xff1a;从音素到语音的完整实现指南 当你第一次听到计算机生成的语音时&#xff0c;是否好奇过这背后的魔法是如何实现的&#xff1f;现代文本转语音(TTS)系统已经能够产生几乎与真人无异的语音&#xff0c;而Deep Voice作为早期端到端TT…...

all-MiniLM-L6-v2入门必读:轻量级Embedding模型选型、部署与评估全流程

all-MiniLM-L6-v2入门必读&#xff1a;轻量级Embedding模型选型、部署与评估全流程 想找一个又快又小的文本嵌入模型&#xff0c;但又担心效果不好&#xff1f;很多开发者在做语义搜索、文本分类或者智能问答时&#xff0c;都会遇到这个难题。大模型效果好但太慢&#xff0c;小…...

保姆级教程:STM32F103开发第一步,搞定Keil5安装、激活与芯片包(附资源包)

STM32F103开发环境搭建全指南&#xff1a;从Keil5安装到芯片包配置 引言&#xff1a;为什么选择Keil MDK进行STM32开发 对于刚接触STM32微控制器的新手来说&#xff0c;开发环境搭建往往是第一个"拦路虎"。Keil MDK&#xff08;Microcontroller Development Kit&…...

国产MCU实战:华大HC32F460串口DMA+超时中断,替代STM32空闲中断的完整配置流程

国产MCU实战&#xff1a;华大HC32F460串口DMA超时中断的工程化实现指南 在嵌入式开发领域&#xff0c;国产MCU的崛起为开发者提供了更多选择。华大半导体的HC32F460系列以其出色的性能和灵活的配置&#xff0c;成为许多项目中替代STM32的理想选择。本文将深入探讨如何在这款芯片…...

YOLOv8模型剪枝实战:如何利用BN层特性实现高效通道裁剪(附完整代码)

YOLOv8模型剪枝实战&#xff1a;从BN层特性到工程化部署的完整指南 在计算机视觉领域&#xff0c;YOLOv8凭借其卓越的实时检测性能已成为工业界的热门选择。但当我们将模型部署到资源受限的边缘设备时&#xff0c;模型大小和计算效率往往成为瓶颈。本文将深入探讨如何利用BN层γ…...

MATLAB实战:16QAM调制解调完整代码解析(附误码率对比图)

MATLAB实战&#xff1a;16QAM调制解调完整代码解析与性能优化 在数字通信系统中&#xff0c;正交幅度调制(QAM)因其高频谱效率而广受青睐。16QAM作为中阶调制方案&#xff0c;在频谱利用率和抗噪性能之间取得了良好平衡。本文将深入解析16QAM调制解调的MATLAB实现&#xff0c;…...

HRNet代码逐行解析:从BasicBlock到HighResolutionNet,手把手教你读懂多分辨率融合

HRNet代码深度解析&#xff1a;从基础模块到多分辨率融合实战 在计算机视觉领域&#xff0c;HRNet&#xff08;High-Resolution Network&#xff09;因其独特的并行多分辨率架构而备受关注。与传统的串行降采样网络不同&#xff0c;HRNet在整个前向传播过程中始终保持高分辨率表…...

DeepSeek API实战:如何用Python脚本绕过Postman直接调用(附完整代码)

DeepSeek API高效调用指南&#xff1a;Python脚本开发实战 在当今快节奏的开发环境中&#xff0c;效率是衡量开发者生产力的关键指标。传统API测试工具如Postman虽然功能强大&#xff0c;但在自动化流程和持续集成场景中往往显得笨重。本文将带你探索一种更轻量、更灵活的解决方…...

OpenClaw技能组合拳:GLM-4.7-Flash完成跨平台内容同步

OpenClaw技能组合拳&#xff1a;GLM-4.7-Flash完成跨平台内容同步 1. 为什么需要跨平台内容同步 上周我遇到一个典型的内容创作者困境&#xff1a;在知乎看到一篇优质技术文章&#xff0c;想把它保存到Notion知识库&#xff0c;同时转换成适合公众号发布的格式。传统做法需要…...