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

【牛客刷题专栏】0x28:JZ30 包含min函数的栈(C语言编程题)

前言

  • 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失
  • 个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述

目录

  • 前言
  • 问题描述:
  • 举例:
  • 解法思路:
  • 代码结果:
  • 结束语


问题描述:

  • 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,输入操作时保证 pop、top 和 min 函数操作时,栈中一定有元素。

  • 此栈包含的方法有:
    push(value):将value压入栈中
    pop():弹出栈顶元素
    top():获取栈顶元素
    min():获取栈中最小元素

  • 数据范围:操作数量满足 0≤n≤300 ,输入的元素满足 ∣val∣≤10000

  • 进阶:栈的各个操作的时间复杂度是 O(1) ,空间复杂度是 O(n)

示例:
输入:    ["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]
输出:    -1,2,1,-1
解析:
"PSH-1"表示将-1压入栈中,栈中元素为-1
"PSH2"表示将2压入栈中,栈中元素为2-1
“MIN”表示获取此时栈中最小元素==>返回-1
"TOP"表示获取栈顶元素==>返回2
"POP"表示弹出栈顶元素,弹出2,栈中元素为-1
"PSH1"表示将1压入栈中,栈中元素为1-1
"TOP"表示获取栈顶元素==>返回1
“MIN”表示获取此时栈中最小元素==>返回-1

举例:

//示例1:
//输入:["PSH-1","PSH2","MIN","TOP","POP","PSH1","TOP","MIN"]
//返回值:
-1,2,1,-1

解法思路:

  • 核心由于栈先进后出的特殊性

代码结果:

static int stack[301];
static int i = 0;
static int min_num = 99999;  
//假设的最小值,其实比栈中所有数都大,为的就是给机会找出栈中真正的最小值void push(int value ) {stack[i++] = value;
}void pop() {i--;  //只弹出,不返回值,只需指针减1
}int top() {int top_num = stack[--i];i++;return top_num;
}int min() {int min;  //这才是真正的最小值for(int k = 0 ; k < i; k++)  //来嘛,一个个比较,看谁小if(stack[k] < min_num)min_num = stack[k];  //好,你更小,最小值让给你min = min_num;   //正式接位最小值min_num = 999999;   //min函数不止用一次,下次还得与假设的最小值开始比,所以要还原return min;}


结束语

  • 以上就是该C语言编程题的内容。可以在牛客尝试刷几道题目来练习实践。牛客网刷题(点击可以跳转),可以尝试注册使用。
  • 题目来自:牛客/题库 / 在线编程 / 剑指offer:
    在这里插入图片描述
http://www.lryc.cn/news/67252.html

相关文章:

  • 聚焦丨酷雷曼荣列XRMA联盟成员单位
  • 物联网架构和技术:如何实现物物互联和智能化控制
  • Linux系统查看CPU信息命令cat /proc/cpuinfo详细说明
  • RK3588旗舰32T人工智能多网口边缘智能网关交换机
  • 一行代码绘制高分SCI火山图
  • chmod是什么?cron是什么?
  • 励志长篇小说《周兴和》书连载之三 十五岁时做父亲
  • 文件一直处于修改状态 git checkout 无法还原的问题解决方法
  • Julia入门-3、Julia包管理工具
  • 选择正确的 Azure 存储服务
  • 隐语团队研究成果再创佳绩,两篇论文分别被USENIX ATC‘23和IJCAI‘23接收!
  • 美团数据指标体系搭建实战
  • prometheus实战之五:飞书通知告警
  • 【华为OD机试真题】不含101的数(python版)100%通过率 超详细代码注释 代码解读
  • 基于AT89C52单片机的交通信号灯设计
  • chatGPT4.0-基于Python+Appium的APPUI关键字驱动自动化测试框架demo
  • C++模板进阶
  • 【人力资源管理】第4集 免费开源ERP: Odoo 16 Appraisal员工绩效评估 构建一体化企业人力资源管理
  • 「AI 孙燕姿」翻唱华语乐坛歌曲爆红全网,AI 翻唱将带来哪些影响?是否会有版权等问题?
  • 路径规划算法:基于灰狼优化的路径规划算法- 附代码
  • 推荐系统综述
  • SQLIST数据库编程
  • vue2中操作对象的方法
  • 左值引用、右值引用,std::move() 的汇编解释
  • LiangGaRy-学习笔记-Day11
  • 【异常解决】浏览器无法访问此网站ERR_UNSAFE_PORT/网页可能无法连接,或者它已永久性地移动到了新网址问题解决方案
  • Python函数的参数
  • 【Hive大数据】Hive分区表与分桶表使用详解
  • C#NPOI操作Excel详解
  • CSS中文字体 Unicode 编码表