Leetcode1441.用栈操作构建数组

文章目录

  • 题目
  • 原题链接
  • 思路
  • 代码

题目

给你一个数组 target 和一个整数 n。每次迭代,需要从 list = { 1 , 2 , 3 …, n } 中依次读取一个数字。
请使用下述操作来构建目标数组 target :

  • “Push”:从 list 中读取一个新元素, 并将其推入数组中。
  • “Pop”:删除数组中的最后一个元素。
  • 如果目标数组构建完成,就停止读取更多元素。

题目数据保证目标数组严格递增,并且只包含 1 到 n 之间的数字。
请返回构建目标数组所用的操作序列。如果存在多个可行方案,返回任一即可。
实例1

输入:target = [1,3], n = 3
输出:[“Push”,“Push”,“Pop”,“Push”]
解释:
读取 1 并自动推入数组 -> [1]
读取 2 并自动推入数组,然后删除它 -> [1]
读取 3 并自动推入数组 -> [1,3]

实例2

输入:target = [1,2,3], n = 3
输出:[“Push”,“Push”,“Push”]

实例3

输入:target = [1,2], n = 4
输出:[“Push”,“Push”]
解释:只需要读取前 2 个数字就可以停止。

提示

  • 1 <= target.length <= 100
  • 1 <= n <= 100
  • 1 <= target[i] <= n
  • target严格递增

原题链接

Leetcode1441.用栈操作构建数组

思路

我们发现 :list = { 1 , 2 , 3 …, n }是严格从1开始每次加一的,并且target[]数组也是递增的。
所以,我们

  1. 初始化res、t = 1(标记当前位置)
  2. 遍历target。当target[i]等于t的时候,则向res中插入“Push”;当target[i]不等t的时候,则向result中插入“Push”和“Pop”
  3. 返回 res

因为t = 1的初始值为1,每次对比t = 1都执行加1操作,所以在最终遍历之后,它的值就是1,2,3……递增的,可以代表题目中锁描述的集合list。

在这里插入图片描述

代码

class Solution 
{
public:
    vector<string> buildArray(vector<int>& target, int n) 
    {
        int t = 1;
        vector<string> res;

        for(auto e : target)
        {
            while(e != t)
            {
                res.push_back("Push");
                res.push_back("Pop");
                t ++;
            }
            res.push_back("Push");
            t ++;
        }
        return res;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java中常用的加密算法及其实现原理详解

目录 1、前言 2、对称加密算法 2.1 对称加密算法的工作原理 2.2 DES、AES、RC4算法的原理及其在Java中的实现 2.3 对称加密算法的优缺点 3、非对称加密算法 3.1 非对称加密算法的工作原理 3.2 RSA、DSA算法的原理及其在Java中的实现 3.3 非对称加密算法的优缺点 4、散…

Lamp架构从入门到精通

系列文章目录 lnmp架构 lnmp架构-nginx负载均衡以及高可用 系列文章目录一、源码编译configure(检测预编译环境是否可行)makemake install优化关闭Debug 二、 nginx负载均衡三、nginx的高并发nginx work数量的设定nginx work进程与cpu的静态绑定压力测试nginx高并发修改操作系…

这三款内网管理监控软件让你事半功倍

在当今高度信息化的时代&#xff0c;企业内部网络&#xff08;内网&#xff09;已经成为企业运营和发展的重要支撑。 然而&#xff0c;随着内网规模的扩大和复杂性的增加&#xff0c;内网的管理和监控也变得越来越困难。 为了提高内网的管理效率和工作效率&#xff0c;许多企…

仅用三张图片实现任意场景三维重建:ReconFusion

论文题目&#xff1a; ReconFusion: 3D Reconstruction with Diffusion Priors 论文作者&#xff1a; Rundi Wu, Ben Mildenhall, Philipp Henzler, Keunhong Park, Ruiqi Gao, Daniel Watson, Pratul P. Srinivasan, Dor Verbin, Jonathan T. Barron, Ben Poole, Aleksande…

exFAT文件系统识别不了怎么办?

一般存储驱动器通常会使用几种文件系统&#xff0c;其中比较常见的是FAT32、NTFS和exFAT&#xff0c;那么它们之间有什么区别呢&#xff1f;exFAT文件系统识别不了怎么办&#xff1f; 常用文件系统之间的区别有哪些&#xff1f; FAT32文件系统&#xff1a;它是一个兼容性非常强…

关联系统-智能集成制动系统IPB

整车制动原理 在讲述IPB之前&#xff0c;需要先了解一下整车的制动原理&#xff1a; 如上图所示&#xff1a; 驾驶员踩下制动踏板&#xff0c;由于制动踏板和真空助力器连接&#xff0c;踏板下降的同时会导致真空助力器内压力增大&#xff0c;真空助力器推动制动液进入ESP&am…

九、Qt C++ 数据库开发

《一、QT的前世今生》 《二、QT下载、安装及问题解决(windows系统)》《三、Qt Creator使用》 ​​​ 《四、Qt 的第一个demo-CSDN博客》 《五、带登录窗体的demo》 《六、新建窗体时&#xff0c;几种窗体的区别》 《七、Qt 信号和槽》 《八、Qt C 毕业设计》 《九、Qt …

2024 1.6~1.12 周报

一、上周工作 论文研读 二、本周计划 思考毕业论文要用到的方法或者思想&#xff0c;多查多看积累可取之处。学习ppt和上周组会内容、卷积神经网络。 三、完成情况 1. 数据训练的方式 1.1 迁移学习 迁移学习是一种机器学习方法&#xff0c;把任务 A 训练出的模型作为初始模…

【剑指offer】替换空格

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述1、题目2、示例 二、题目分析1、replaceAll 方法2、StringBuilder3、临时数组 一、题目描述 1、题目 剑指of…

【Python3】【力扣题】387. 字符串中的第一个唯一字符

【力扣题】题目描述&#xff1a; 【Python3】代码&#xff1a; 1、解题思路&#xff1a;遍历字符串&#xff0c;依次判断元素在字符串中的个数是否为1&#xff0c;第一个为1的返回该元素的索引号&#xff0c;若整个字符串都没有个数为1的&#xff0c;则返回-1。 知识点&#…

武汉灰京文化:抓住用户心理,游戏推广不可或缺的前提

在当今激烈竞争的游戏市场中&#xff0c;了解目标用户成为游戏推广的不可或缺的前提。不同类型的游戏适合不同的用户群体&#xff0c;因此通过深入研究用户画像&#xff0c;准确定位目标用户群体&#xff0c;成为游戏成功推广的关键一环。游戏推广不仅仅是让更多的人知道游戏的…

运算符重载函数

C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也具有其返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键字operator后面接需要重载的运算符符…

机器学习-决策树

1、什么是决策树&#xff1f; 一种描述概念空间的有效的归纳推理办法。基于决策树的学习方法可以进行不相关的多概念学习&#xff0c;具有简单快捷的优势&#xff0c;已经在各个领域取得广泛应用。 决策树是一种树型结构&#xff0c;其中每个内部结点表示在一个属性上的测试&a…

大数据Doris(五十六):SQL函数之地理位置函数

文章目录 SQL函数之地理位置函数 一、​​​​​​​ST_AsText(GEOMETRY geo)

Java - Lombok的添加和使用详解

目录 &#x1f436;6.1 lombok介绍 &#x1f436;6.2 lombok使用 1. &#x1f959;添加方法一 2. &#x1f959;添加方法2 3. 使用 &#x1f436;6.3 lombok常用注解 1. &#x1f959;Getter和Setter 2. &#x1f959;ToString 3. &#x1f959;NoArgsConstructor和Al…

Docker入门安装、镜像与容器下载 —— 基本操作

目录 前言 Docker 1. docker介绍 2. docker安装 3. docker基本使用 3.1 镜像下载 3.2 操作容器 前言 虚拟机&#xff1a;基于主机(物理机或虚机)的多服务实例。在该模式下&#xff0c;软件开发人员可以提供单个或多个物理机或虚机&#xff0c;同时在每个主机上运行多个服…

【务实笔记】总要朝前看

最近关注了鱼皮的编程导航&#xff0c;打算跟着鱼皮做一做项目&#xff0c;为研究生复试作准备。其实我原先已经有一个C高并发服务器的项目了&#xff0c;只不过最近很无奈&#xff0c;开始打造前端页面的时候&#xff0c;虚拟机Qt安装界面死活卡在了第一步&#xff1a; ┭┮﹏…

Java多线程并发篇----第十七篇

系列文章目录 文章目录 系列文章目录前言一、为什么要用 join()方法?二、线程唤醒(notify)三、线程其他方法四、进程五、上下文前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

用Python实现USB插拔测试

测试目的 我司的产品需要进行唤与睡眠状态之间的切换测试&#xff0c;而且需要进行长时间的压力测试。由于没有插拔USB的机械设备&#xff0c;所以我这边就需要设计一个能模拟USB插拔的测试环境。 设计 测试环境的设计只能根据现有资源来进行&#xff0c;所以我这边给出的方…

Html+Css+JavaScript实现完整的轮播图功能

概要 这个案例具备常见轮播图完整的功能&#xff0c;大家可以根据自己的需求去修改&#xff1b; 代码可以直接复制运行&#xff0c;需要安装sass 主要功能&#xff1a; &#xff08;1&#xff09;鼠标移入轮播图&#xff0c;左右两边的按钮出现&#xff0c;离开则隐藏按钮&a…