2024/4/1—力扣—栈的最小值

代码实现:

typedef struct node {int val;struct node *next;
} Node;typedef struct {struct node *top;int min;
} MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj = malloc(sizeof(*obj));obj->top = NULL;obj->min = INT_MAX;return obj;
}void minStackPush(MinStack *obj, int x) {Node *p = malloc(sizeof(*p));p->val = x;p->next = NULL;obj->min = obj->min > x ? x : obj->min;if (obj->top == NULL) {obj->top = p;} else {p->next = obj->top;obj->top = p;}
}void minStackPop(MinStack *obj) {Node *pc = obj->top;obj->top = obj->top->next;if (obj->top == NULL) {obj->min = INT_MAX;} else if (pc->val == obj->min) {Node *p = obj->top;int fmin = p->val;while (p) {if (fmin > p->val) {fmin = p->val;}p = p->next;}obj->min = fmin; }pc->next = NULL;free(pc);
}int minStackTop(MinStack *obj) {return obj->top->val;
}int minStackGetMin(MinStack *obj) {return obj->min;
}void minStackFree(MinStack *obj) {Node *pc = obj->top;while (pc) {obj->top = obj->top->next;pc->next = NULL;free(pc);pc = obj->top;}free(obj);
}/*** Your MinStack struct will be instantiated and called as such:* MinStack* obj = minStackCreate();* minStackPush(obj, x);* minStackPop(obj);* int param_3 = minStackTop(obj);* int param_4 = minStackGetMin(obj);* minStackFree(obj);
*/

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

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

相关文章

手机软件何时统一--桥接模式

1.1 凭什么你的游戏我不能玩 2007年苹果手机尚未出世,机操作系统多种多样(黑莓、塞班、Tizen等),互相封闭。而如今,存世的手机操作系统只剩下苹果OS和安卓,鸿蒙正在稳步进场。 1.2 紧耦合的程序演化 手机…

【c语言】strncpy函数模拟实现

strncpy函数模拟实现 strncpy函数在cplusplus网站中的定义 模拟实现源码 //模拟实现 #include <stdio.h> #include <string.h> #include <assert.h>char* my_strncpy(char* destination, const char* source, size_t num) {assert(destination && so…

AI大模型下的策略模式与模板方法模式对比解析

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;设计模式深度解析&#xff1a;AI大模型下…

TypeScript学习笔记2-联合类型、类型断言

联合类型 联合类型&#xff1a;顾名思义&#xff0c;简单的说就是多种类型联合起来 栗子1&#xff1a;运用在函数中 栗子2&#xff1a;运用在dom上&#xff08;取不到值时可能为null类型&#xff09; 栗子3&#xff1a;定时器是个常用例子 在TypeScript中&#xff0c;联合类型…

一切皆是为了交流-DDD通用语言

通用语言是什么&#xff1f; 通用语言是一种在特定领域内的沟通方式&#xff0c;可以由文字、语言、手势、图像等一切与达到沟通目的的元素组成。 比如&#xff0c;在中国内&#xff0c;方言是闽南的小王与方言是粤语的小张进行交流&#xff0c;那么&#xff0c;普通话是他们…

2024年MathorCup妈妈杯数学建模思路D题思路解析+参考成品

1 赛题思路 (赛题出来以后第一时间在群内分享&#xff0c;点击下方群名片即可加群) 2 比赛日期和时间 报名截止时间&#xff1a;2024年4月11日&#xff08;周四&#xff09;12:00 比赛开始时间&#xff1a;2024年4月12日&#xff08;周五&#xff09;8:00 比赛结束时间&…

室友打团太吵?一条命令让它卡死

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;更多干货&#xff0c;请关注专栏《网络安全自学教程》 SYN Flood 1、hping3实现SYN Flood1.1、主机探测1.2、扫描端…

Web后端搭建

目录 一 搭建服务器端 1.1安装服务器软件 1.2检查环境是否配置 1.3安装Tomcat 二 创建并发Web项目 2.1创建一个java项目 三 创建Servlet 前端程序如何才能访问到后端程序呢&#xff0c;这时候我们就需要web服务器来解决&#xff1a;将后端程序部署到服务器中&#xff0c…

SpringCloud Alibaba Sentinel 简介和安装

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十三篇&#xff0c;即介绍 SpringCloud Alibaba Sentinel 简介和安装。 二、Sentinel 简介 2.1 Sent…

Docker容器(五)Docker Compose

一、概述 1.1介绍 Docker Compose是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。Compose 是 Docker 公司推出的一个工具软件&#xff0c;可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml&#xff0c;…

【Redis 知识储备】冷热分离架构 -- 分布系统的演进(5)

冷热分离架构 简介出现原因架构工作原理技术案例架构优缺点 简介 引入缓存, 实行冷热分离, 将热点数据放到缓存中快速响应 (如存储到 Redis中) 出现原因 海量的请求导致数据库负载过高, 站点响应再读变慢 架构工作原理 多了缓存服务器, 对于热点数据全部到缓存中, 不常用数…

Linux配置本地yum源,高效便捷,2024Linux运维者真的太难了

6.修改yum配置 备份你的原镜像文件&#xff0c;以免出错后可以恢复 mkdir /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 7.添加一个新的yum源配置文件 vi /etc/yum.repos.d/dvd.repo 添加&#xff1a; [RHEL] nameRHEL7 b…