@ 代码随想录算法训练营第9周(C语言)|Day63(单调栈)

@ 代码随想录算法训练营第9周(C语言)|Day63(单调栈)

Day63、单调栈(包含题目 ● 503.下一个更大元素II ● 42. 接雨水 )

503.下一个更大元素II

题目描述

给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。

题目解答

int* nextGreaterElements(int* nums, int numsSize, int* returnSize) {int nums1[2*numsSize];int* res=(int*)malloc(sizeof(int)*numsSize*2);int rescount=0;memset(res,-1,sizeof(int)*numsSize*2);for(int i=0;i<numsSize;i++){nums1[i]=nums[i];nums1[i+numsSize]=nums[i];}int stack[10001];int stacktop=0;stack[stacktop++]=0;for(int i=1;i<2*numsSize;i++){if(nums1[i]>nums1[stack[stacktop-1]]){while(stacktop!=0&&nums1[i]>nums1[stack[stacktop-1]]){res[stack[stacktop-1]]=nums1[i];stacktop--;}}stack[stacktop++]=i;}*returnSize=numsSize;return res;
}

题目总结

循环就是首尾相接再加一段,一定注意res的空间是2*size。

42. 接雨水

题目描述

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

题目解答

int trap(int* height, int heightSize) {int maxleft[heightSize];int maxright[heightSize];maxleft[0]=height[0];for(int i=1;i<heightSize;i++){maxleft[i]=fmax(height[i],maxleft[i-1]);}maxright[heightSize-1]=height[heightSize-1];for(int i=heightSize-2;i>=0;i--){maxright[i]=fmax(height[i],maxright[i+1]);}int sum=0;for(int i=1;i<heightSize-1;i++){int count=fmin(maxleft[i],maxright[i])-height[i];if(count>0){sum+=count;}}return sum;
}//单调栈
int trap(int* height, int heightSize) {int stack[heightSize];int stacktop=0;stack[stacktop++]=0;int res=0;for(int i=1;i<heightSize;i++){if(height[i]>height[stack[stacktop-1]]){while(stacktop!=0&&height[i]>height[stack[stacktop-1]]){int mid=height[stack[stacktop-1]];stacktop--;if(stacktop!=0){int left=height[stack[stacktop-1]];res+=(fmin(left,height[i])-mid)*(i-(stack[stacktop-1])-1);}}}stack[stacktop++]=i;}return res;
}

题目总结

使用的是双指针来做,分别找到i高度两边比其最高的元素,进行高度计算。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全防御-第六次

内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 DFI和DPI技术--- 深度检测技术 DPI --- 深度包检测技术--- 主要针对完整的数据包&#xff08;数据包分片&#xff0c;分段需要重组&#xff09;&#xff0c;之后对数据包的内容进行识别。&#xff08;应用层&…

NerfStudio安装及第一个场景重建

NerfStudio文档是写在windows和linux上安装&#xff0c;本文记录Linux安装的过程&#xff0c;且我的cuda是11.7 创建环境 conda create --name nerfstudio -y python3.8 conda activate nerfstudio python -m pip install --upgrade pip Pytorch要求2.0.1之后的,文档推荐cud…

CSS——PostCSS简介

文章目录 PostCSS是什么postCSS的优点补充&#xff1a;polyfill补充&#xff1a;Stylelint PostCSS架构概述工作流程PostCSS解析方法PostCSS解析流程 PostCSS插件插件的使用控制类插件包类插件未来的CSS语法相关插件后备措施相关插件语言扩展相关插件颜色相关组件图片和字体相关…

【ArcGIS】基本概念-空间参考与变换

ArcGIS基本概念-空间参考与变换 1 空间参考与地图投影1.1 空间参考1.2 大地坐标系&#xff08;地理坐标系&#xff09;1.3 投影坐标系总结 2 投影变换预处理2.1 定义投影2.2 转换自定义地理&#xff08;坐标&#xff09;变换2.3 转换坐标记法 3 投影变换3.1 矢量数据的投影变换…

广和通发布基于MediaTek T300平台的RedCap模组FM330系列及解决方案

世界移动通信大会MWC 2024期间&#xff0c;广和通发布基于MediaTek T300平台的RedCap模组FM330系列&#xff0c;加速5G-A繁荣发展。FM330系列及其解决方案采用全球先进RedCap方案&#xff0c;满足移动宽带和工业互联对高能效的需求。 广和通FM330系列采用全球首款6nm制程且集成…

配置与管理Samba服务器

配置与管理samba服务器 1&#xff0c;作用&#xff1a;可以使用户在异构网络操作系统之间进行文件系统共享 2&#xff0c;**SMB协议&#xff1a;**主要是作为Microsoft网络的通讯协议&#xff1b;一般端口使用为139&#xff0c;445。 3&#xff0c;功能&#xff1a;1&#x…

SpringMVC 学习(九)之拦截器

目录 1 拦截器介绍 2 创建一个拦截器类 3 配置拦截器 1 拦截器介绍 在 SpringMVC 中&#xff0c;拦截器 (Interceptor) 是一种用于拦截 HTTP 请求并在请求处理之前或之后执行自定义逻辑的组件。拦截器可以用于实现以下功能&#xff1a; 权限验证&#xff1a;在请求处理之前…

Tuning Language Models by Proxy

1、写作动机&#xff1a; 调整大语言模型已经变得越来越耗资源&#xff0c;或者在模型权重是私有的情况下是不可能的。作者引入了代理微调&#xff0c;这是一种轻量级的解码时算法&#xff0c;它在黑盒 大语言模型 之上运行&#xff0c;以达到直接微调模型的结果&#xff0c;但…

MSSQL 获取表对应的列明,备注,字段类型

旧系统代码CV多了想解放一下双手写个代码生成器&#xff0c;这时候就需要获取到表的某一些信息了 SELECT a.NAME AS colname,CONCAT(UPPER(SUBSTRING(b.name, 1, 1)), LOWER(SUBSTRING(b.name, 2,LEN(b.name)-1))) AS typename,a.length AS length,a.scale AS scale, a.prec A…

设计模式学习笔记 - 面向对象 - 9.实践:如何进行面向对象分析、设计与编码

1.如何对接口鉴权这样一个功能开发做面向对象分析 本章会结合一个真实的案例&#xff0c;从基础的需求分析、职责划分、类的定义、交互、组装运行讲起&#xff0c;将最基础的面向对象分析&#xff08;00A&#xff09;、设计&#xff08;00D&#xff09;、编程&#xff08;00P&…

《opencv实用探索·二十二》支持向量机SVM用法

1、概述 在了解支持向量机SVM用法之前先了解一些概念&#xff1a; &#xff08;1&#xff09;线性可分和线性不可分 如果在一个二维空间有一堆样本&#xff0c;如下图所示&#xff0c;如果能找到一条线把这两类样本分开至线的两侧&#xff0c;那么这个样本集就是线性可分&#…

GIS之深度学习03:Anaconda无法正常启动问题汇总(更新)

在安装完成anaconda后&#xff0c;总会出现一些问题&#xff0c;以下为遇到的问题及解决方案&#xff1a; &#xff08;有问题请私信&#xff0c;持续更新&#xff09; 01&#xff1a;anaconda navigator启动时一直卡在 loading applications 页面 解决&#xff1a; 找到anac…

水库安全监测方案(福建地区水库安全监测案例分享)

我司星创易联最近在福建省受到了一个水库安全监测系统项目的委托。该水库位于福建中部山区,作为该地区的重要防洪与供水工程,对下游数十万人的生活产生重大影响。但是因为水库附近地质情况复杂,水库大坝在多次洪水冲击下出现一定病害,亟须全面加强对水库大坝安全状况的监测,以确…

使用Docker部署Nacos集群和Nginx高可用负载(9节点集群部署)

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容部署Nacos集群Nginx高可用负载 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专…

力扣5. 最长回文子串(双指针、动态规划)

Problem: 5. 最长回文子串 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a;双指针 1.我们利用双指针从中间向两边扩散来判断是否为回文串&#xff0c;则关键是找到以s[i]为中心的回文串&#xff1b; 2.我们编写一个函数string palindrome(string &s, in…

复盘昨天的内容

vue调节css 后端做业务处理 1.分类管理 GetMapping("/queryCtc")public ApiResult queryCtc(){return ctcService.queryCtc();}/*** 修改类目信息* return*/PutMapping("/updateCtc")public ApiResult updateCtc(RequestBody ShopCtc shopCtc){return c…

【论文阅读】基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取

Bubble feature extraction in subcooled flow boiling using AI-based object detection and tracking techniques 基于人工智能目标检测与跟踪技术的过冷流沸腾气泡特征提取 期刊信息&#xff1a;International Journal of Heat and Mass Transfer 2024 级别&#xff1a;EI检…

硬件监控:使用ipmitool实现Linux系统下对服务器硬件监控

一、监控背景 运维人员对服务器硬件监控主要通过主机人员日常巡检&#xff0c;以及zabbix监控。zabbix监控仅限于服务器CPU、内存故障等导致宕机或者重启从而触发主机状态告警&#xff0c;单个磁盘挂载文件系统因坏盘导致文件系统读写异常&#xff0c;其他情况下zabbix很难监控…

Vue3.0+vue-router 实现权限路由方案一

定义路由 const routes[{path: /page,name: "dashboard",redirect: /page/home,meta: {title: "首页",},component: () > import(/components/layout/index.vue),children: [{path: home,name: "home",meta: {title: "仪表盘",ro…

MongoDB之MongoDBConnectorBI安装与使用

MongoDB之MongoDBConnectorBI安装与使用 文章目录 MongoDB之MongoDBConnectorBI安装与使用1. What is the MongoDB Connector for BI?1. 官网2. 是什么&#xff1f;3. 主要功能和作用4. 应用用场景 2. 安装及说明1. 前提条件2. 在Windows下的安装3.启动与运行1. 配置2. 启动mo…