day14:栈排序
问题描述:
栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。
示例1:
输入: ["SortedStack", "push", "push", "peek", "pop", "peek"] [[], [1], [2], [], [], []] 输出: [null,null,null,1,null,2]
示例2:
输入: ["SortedStack", "pop", "pop", "push", "pop", "isEmpty"] [[], [], [], [1], [], []] 输出: [null,null,null,null,null,true]
说明:
- 栈中的元素数目在[0, 5000]范围内。
解决方案:
1、分析题目:用两个栈(主栈+辅助栈)实现排序算法,返回主栈
2、栈顶元素比较:主栈 始终为较大的值,辅助栈 始终为小值
注:辅助栈中始终为降序出栈(先大后小)
3、循环判断:如果 主栈 中栈顶元素 < 待输入值(val),该元素归入 辅助栈里。
例:1,3,2
(1)1--> 主栈
(2)1<3:1-->辅助栈,3-->主栈,1-->主栈
(3)1<2:同上,结果:主栈(3)辅助栈(1)
第二次判断:3>2 :2 直接放入 主栈,合并辅助栈,即主栈(1,2,3)
函数代码:
class SortedStack { public:stack<int> num;stack<int> tmp;SortedStack() {}void push(int val) {while(!num.empty() && num.top()<val){tmp.push(num.top());num.pop();}num.push(val);while(!tmp.empty()){num.push(tmp.top());tmp.pop();}}void pop() {if(!num.empty()) num.pop();}int peek() {if(num.empty()) return -1;return num.top();}bool isEmpty() {return num.empty();} };
相关文章:
day14:栈排序
问题描述: 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈…...
【LeetCode:2368. 受限条件下可到达节点的数目 + BFS】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
pyorbbecsdk奥比中光python版本SDK在Windows下环境配置笔记
1、概述 Orbbec SDK Python Wrapper基于Orbbec SDK进行设计封装,主要实现数据流接收,设备指令控制。 2、系统要求 2.1、操作系统 Windows:Windows 10 (x64)(本文 针对windows)Linux: 18.04/20.04/22.04 (x64)Arm32:…...
YOLOV8介绍
原文链接: 1、 详解YOLOv8网络结构/环境搭建/数据集获取/训练/推理/验证/导出 2、Yolov8的详解与实战 3、YOLOV8模型训练部署(实战)()有具体部署和训练实现代码YOLOV8模型训练部署(实战)&…...
【ElfBoard】基于 Linux 的智能家居小项目
大家好,我是 Hello阿尔法,这段时间参与了保定飞凌嵌入式技术有限公司举办的 ElfBoard 共创社招募活动,并有幸成为了一名共创官,官方寄来了一块 ELF 1 开发板,开箱看这里 ELF 1 开箱初体验。 作为共创官,我…...
自动化测试介绍、selenium用法(自动化测试框架+爬虫可用)
文章目录 一、自动化测试1、什么是自动化测试?2、手工测试 vs 自动化测试3、自动化测试常见误区4、自动化测试的优劣5、自动化测试分层6、什么项目适合自动化测试 二、Selenuim1、小例子2、用法3、页面操作获取输入内容模拟点击清空文本元素拖拽frame切换窗口切换/标…...
深度学习的一个完整过程通常包括以下几个步骤
深度学习的一个完整过程通常包括以下几个步骤: 问题定义和数据收集: 定义清晰的问题,明确任务的类型(分类、回归、聚类等)以及预期的输出。收集和整理用于训练和评估模型的数据集。确保数据集的质量,进行预…...
WPS如何共享文件和文件夹
1 WPS共享单个文件 用WPS打开要分享的文件,点击右上角的“分享”键,选择上传到云端。 之后点击“创建并分享”,即可分享该文档。 2 WPS创建共享文件夹 2.1 如何共享文件夹 首先打开WPS,点击左上角的首页。在首页栏中&#…...
PowerData 2024“数字经济-城市开源行”活动预告
2023,社区经过一年的发展,凝聚起了一批热爱社区、热爱开源的小伙伴。 2024,社区计划在全国十个城市举办"数字经济-城市开源行"活动,连接社区成员、传播数字技术、推广开源文化,吸引更多伙伴加入社区…...
QT多语言切换功能
一.目的 在做项目时,有时希望我们的程序可以在不同的国家使用,这样最好的方式是一套程序能适应于多国语言。 Qt提供了这样的功能,使得一套程序可以呈现出不同的语言界面。本文将介绍QT如何实现多语言,以中文和英文为例。 QT开发…...
windows上elasticsearch的ik分词器的安装
下载 下载地址 在elasticsearch下的plugins文件夹下创建ik的文件夹 下载的ik压缩包解压到plugins/ik 重启elasticsearch 验证 http://ip:9200/_cat/plugins...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的口罩识别系统(Python+PySide6界面+训练代码)
摘要:开发口罩识别系统对于提升公共卫生安全和疫情防控具有重要意义。本篇博客详细介绍了如何利用深度学习构建一个口罩识别系统,并提供了完整的实现代码。该系统基于强大的YOLOv8算法,并结合了YOLOv7、YOLOv6、YOLOv5的对比,给出…...
在Windows系统中启动Redis服务
前言 Redis是一个开源、高性能的键值对数据库,常用于缓存、消息队列等场景。本文将详细指导您如何在Windows系统上启动Redis服务。 第一步:确认Redis安装 确保您已经在Windows系统上成功安装了Redis。官方提供了预编译好的Windows版本,您可…...
k8s.gcr.io/pause:3.2镜像丢失解决
文章目录 前言错误信息临时解决推荐解决onetwo 前言 使用Kubernetes(k8s)时遇到了镜像拉取的问题,导致Pod沙盒创建失败。错误显示在尝试从k8s.gcr.io拉取pause:3.2镜像时遇到了超时问题,这通常是因为网络问题或者镜像仓库服务器的…...
全面整理!机器学习常用的回归预测模型
Datawhale干货 作者:曾浩龙,Datawhale意向成员 前言 回归预测建模的核心是学习输入 到输出 (其中 是连续值向量)的映射关系。条件期望 是 到 的回归函数。简单来说,就是将样本的特征矩阵映射到样本标签空间。 图…...
在vue中对keep-alive的理解,它是如何实现的,具体缓存的是什么?
对keep-alive的理解,它是如何实现的,具体缓存的是什么? (1)keep-alive有以下三个属性:注意:keep-alive 包裹动态组件时,会缓存不活动的组件实例。主要流程 (2)…...
章节一、认识three.js与开发环境学习笔记01;
一、如何学习WEB可视化3D技术与课程内容演示; 1、项目案例: 政府有大量的新基建的项目:如数字孪生、智慧城市、智慧园区、智慧工厂、智慧消防等等都涉及了3d的可视化技术; 2、如何系统的学号WEB 3D可视化技术? three…...
QT摄像头采集
主界面为显示框,两个下拉框,一个是所有相机,一个是相机支持的分辨率 系统根据UI界面自动生成的部分不再描述,以下为其他部分源码 widget.h #include <QWidget> #include <QMouseEvent> class QCamera; class QCamer…...
C语言第三十四弹---动态内存管理(下)
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 动态内存管理 1、动态内存经典笔试题分析 1.1、题目1 1.2、题目2 1.3、题目3 1.4、题目4 2、柔性数组 2.1、柔性数组的特点 2.2、柔性数组的使用 2.3、…...
PDN分析及应用系列二-简单5V电源分配-Altium Designer仿真分析-AD
PDN分析及应用系列二 —— 案例1:简单5V电源分配 预模拟DC网络识别 当最初为PCB设计打开PDN分析仪时,它将尝试根据公共电源网络命名法从设计中识别所有直流电源网络。 正确的DC网络识别对于获得最准确的模拟结果非常重要。 在示例项目中已经识别出主DC网络以简化该过程。 …...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...
【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战
🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...
Qt学习及使用_第1部分_认识Qt---Qt开发基本流程
前言 学以致用,通过QT框架的学习,一边实践,一边探索编程的方方面面. 参考书:<Qt 6 C开发指南>(以下称"本书") 标识说明:概念用粗体倾斜.重点内容用(加粗黑体)---重点内容(红字)---重点内容(加粗红字), 本书原话内容用深蓝色标识,比较重要的内容用加粗倾…...
