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

news/2024/4/15 12:57:31

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

Day25、回溯(包含题目 739. 每日温度 496.下一个更大元素 I )

739. 每日温度

题目描述

请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。

题目解答

int* dailyTemperatures(int* temperatures, int temperaturesSize, int* returnSize) {int stack[1000000];int stacksize=1;stack[0]=0;int * res=(int *)malloc(sizeof(long int)*temperaturesSize);int k=0;//memset(res,0,sizeof(res));for(int i=0;i<temperaturesSize;i++){res[i]=0;}for(int i=1;i<temperaturesSize;i++){while(stacksize!=0){if(temperatures[stack[stacksize-1]]<temperatures[i]){res[stack[stacksize-1]]=i-stack[stacksize-1];stacksize--;}else{stack[stacksize++]=i;break;}}stack[stacksize++]=i;}(*returnSize)=temperaturesSize;return res;
}

题目总结

找当前数组比当前元素大的数,使用单调递增的单调栈。

496.下一个更大元素 I

题目描述

给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。

请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。

题目解答

int* nextGreaterElement(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {int n=nums1Size;int m=nums2Size;*returnSize=n;int hash[10001];memset(hash,0,sizeof(hash));int* res=(int*)malloc(sizeof(int)*n);int *stack=(int*)malloc(sizeof(int)*m);int top=0;stack[top++]=0;for(int i=1;i<m;i++){if(nums2[i]>nums2[stack[top-1]]){while(top>0&&nums2[i]>nums2[stack[top-1]]){hash[nums2[stack[top-1]]]=i;//记录比当前坐标元素大的元素坐标top--;}}stack[top++]=i;}for(int i=0;i<n;i++){res[i]=hash[nums1[i]]==0?-1:nums2[hash[nums1[i]]];}return res;
}

题目总结

使用hash进行快速查找元素坐标。


http://www.ppmy.cn/news/1363668.html

相关文章

Unity资源加密解决方案

据统计&#xff0c;全球范围内超过50%的游戏均使用Unity创作而成&#xff0c;作为游戏开发市场第一大游戏引擎占有者&#xff0c;Unity已经全面覆盖到各个游戏平台。 全球游戏引擎市场占有率 由于体量庞大&#xff0c;Unity游戏已成为受游戏黑灰产攻击的重灾区&#xff0c;因游…

Vue3快速上手(十一)标签里的ref属性

一、介绍 标签里的ref&#xff0c;可以在普通html元素标签上&#xff0c;也可以用在vue组件标签上。用在html元素标签上时&#xff0c;返回的是该html元素的DOM&#xff1b;用在vue组件标签上时&#xff0c;返回的是该子组件&#xff08;也就是当前vue是父组件&#xff09;暴露…

Qt之字符串查找

去掉空格 OString类的成员雨数 trimmed&#xff08;&#xff09;会去掉字符申首尾的空格&#xff0c;而成员函数simplified&#xff08;&#xff09;不仅 去掉宇符申首尾的空格&#xff0c;中间连续的空格也用一个空格符来替换。比如&#xff1a; OString str1"Are you O…

开箱即用之 -28800000,35508214 互转 “HH:mm:ss“

时间戳转日期字符串 /*** 将时间戳转为字符串*/public static String coverTime(Long time, String format){if (null ! time){DateTime dateTime date(time);if (ObjectUtil.isEmpty(format)){return dateTime.toString();}return dateTime.toString(format);}return "&…

Android基础进阶 - RecyclerView列表加载多类型视图

你是否会经常见到在同一个 RecyclerView 列表中加载多种不同的布局效果&#xff1f;最近写了一篇 ConcatAdapter 相关内容&#xff0c;发现虽然之前一直在使用多类型视图列表&#xff0c;但从未记录过&#xff0c;故重新记录于此 RecyclerView基础 Android进阶之路 - Recycler…

c# Dispose资源释放

资源类型 托管资源&#xff1a;由CLR建立和释放 非托管资源&#xff1a;资源的建立和释放不禁CLR管理。好比IO、网络链接、数据库链接等等。须要开发人员手动释放。 如何释放 调用的是微软类库或者第三方类库&#xff0c;通常类库会提供释放的方法&#xff0c;即约定为Disp…

【Java网络编程06】HTTPS原理

1. HTTPS基本概念 HTTPS&#xff1a;HTTPS也是一个应用层协议&#xff0c;它在HTTP协议的基础上引入了一个加密层——SSL协议&#xff0c;区别就在于HTTP协议是基于明文传输的&#xff08;不安全&#xff09;&#xff0c;使用HTTPS加密就能在一定程度上防止数据在传输过程中被…

【leetcode】剑指Offer专项突击版含注释 Java版本(一)

目录 前言第一天&#xff08;整数&#xff09;剑指 Offer II 002. 二进制加法&#xff08;简单&#xff09; 第二天&#xff08;整数&#xff09;剑指 Offer II 004. 只出现一次的数字 &#xff08;中等&#xff09;剑指 Offer II 005. 单词长度的最大乘积&#xff08;中等&…

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQX Enterprise 5.5.0 版本已正式发布&#xff01; 在这个版本中&#xff0c;我们引入了一系列新的功能和改进&#xff0c;包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外&#xff0c;新版本还进行了多项改进以及 B…

“智能语音指令解析“ 基于NLP与语音识别的工单关键信息提取

“智能语音指令解析“ 基于NLP与语音识别的工单关键信息提取 1. 背景介绍1.1 场景痛点1.2 方案选型 2. 准备开发环境3. PaddleSpeech 语音识别快速使用4. PaddleNLP 信息抽取快速使用5. 语音工单信息抽取核心功能实现6. 语音工单信息抽取网页应用6.1 网页前端6.2 网页后端6.3 a…

开发工具篇第36讲:如何使用Typora+Gitee+PicGo+OSS+Idea创建属于自己的云笔记

如何使用Typora+Gitee+PicGo+OSS+Idea创建属于自己的云笔记 好记性不如烂笔头,记笔记是一个好习惯,本人习惯通过Typora软件记录markdown笔记,但是遇到了多设备同步笔记的问题,本文是开发工具篇第36讲,介绍通过Typora+PicGo+Gitee搭建个人云笔记平台,使得多设备都能看到最…

[C++]C++获取GPU显卡信息的示例代码

C获取GPU显卡信息 #include <Windows.h> #include <iostream> #include <DXGI.h> #include <vector> using namespace std; std::string WStringToString(const std::wstring &wstr) {std::string str(wstr.length(), );std::copy(wstr.b…

[第一章 web入门]SQL注入-2 题目分析与详解

一、题目简介&#xff1a; 分析题目&#xff0c;拿到flag。 二、解题思路&#xff1a; 1、我们首先按照题目要求&#xff0c;分别访问 /login.php 和 /user.php。 访问 /login.php&#xff0c;页面如图&#xff1a; 访问 user.php&#xff0c;页面如图&#xff1a; user.php…

OpenGL ES 3.0 从入门到精通系统性学习教程

为什么要写这个教程 因为在工作中频繁使用 OpenGL ES 做一些特效、滤镜之类的效果&#xff0c;加上平时学到的的知识点也比较细碎&#xff0c;就想着去系统地学习下 OpenGL ES 相关开发知识&#xff0c;并将学习过程记录下来。 准备知识 一些同学反映&#xff0c;学习这个教…

React htmlfor

注意&#xff0c;在添加属性时&#xff0c; class 属性需要写成 className &#xff0c;for 属性需要写成 htmlFor &#xff0c;这是因为 class 和 for 是 JavaScript 的保留字。 在React中&#xff0c;当我们需要为一个表单元素设置标签时&#xff0c;可以使用htmlFor属性。它…

★【递归】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树

★【递归】【构造二叉树】Leetcode 106.从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树 106.从中序与后序遍历序列构造二叉树:star:思路分析递归解法 105. 从前序与中序遍历序列构造二叉树递归解法 ---------------&#x1f388;&#x1f388;题目链接&a…

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents 一、 查询集合中的Documents二 选择字段三、 其他查询选项3.1 Hints3.2 游标批大小Cursor Batch Size3.3 Collations3.4 读取首选项Read Preference3.5 Comments 四、查询Distinct值五、GeoSpatial Q…

Programming Abstractions in C阅读笔记:p303-p305

《Programming Abstractions in C》学习第74天&#xff0c;p303-p305总结&#xff0c;总计3页。 一、技术总结 1.时间复杂度分类(complexity classes) ClassNotationExampleconstantO(1)Returning the first element in an arraylogarithmicO(logN)Binary search in a sorte…

StarRocks之扩容缩容

扩缩容 FE 集群 StarRocks FE 节点分为 Follower 节点和 Observer 节点。Follower 节点参与选举投票和写入&#xff0c;Observer 节点只用来同步日志&#xff0c;扩展读性能。 注意&#xff1a; 所有 FE 节点的 http_port 必须相同。 Follower FE 节点&#xff08;包括 Leader…

【MySQL】undo log、redo log、bin log三者之间的区分?

undo log、redo log、bin log三者之间的区分&#xff1f; 从 产生的时间点、日志内容、用途 三方面展开论述即可 1.undo log——撤销日志 时间点&#xff1a;事务开始之前产生&#xff0c;根据当前版本的数据生成一个undo log&#xff0c;也保存在事务开始之前 作用&#xf…
最新文章