堆盘子00

题目链接

堆盘子

题目描述

注意点

  • SetOfStacks应该由多个栈组成,并且在前一个栈填满时新建一个栈

解答思路

  • 将多个栈存储到一个List中,当入栈时,如果List中最后一个栈容量已经达到cap,则需要新建一个栈,将元素推到新栈中,并将新栈添加到List中;当出栈时,如果List中最后一个栈只有一个元素,当该元素出栈后,变为空栈,需要将该栈从List中移除

代码

class StackOfPlates {
    int cap;
    List<Deque> list;

    public StackOfPlates(int cap) {
        this.cap = cap;
        list = new ArrayList<>();
    }
    
    public void push(int val) {
        if (cap == 0) {
            return;
        }
        if (list.isEmpty() || list.get(list.size() - 1).size() >= cap) {
            Deque<Integer> deque = new ArrayDeque<>();
            deque.push(val);
            list.add(deque);
        } else {
            Deque<Integer> deque = list.get(list.size() - 1);
            deque.push(val);
        }
    }
    
    public int pop() {
        if (list.isEmpty()) {
            return -1;
        }
        Deque<Integer> deque = list.get(list.size() - 1);
        int res = deque.pop();
        if (deque.isEmpty()) {
            list.remove(list.size() - 1);
        }
        return res;
    }
    
    public int popAt(int index) {
        if (index >= list.size()) {
            return -1;
        }
        Deque<Integer> deque = list.get(index);
        int res = deque.pop();
        if (deque.isEmpty()) {
            list.remove(index);
        }
        return res;
    }
}

关键点

  • 注意边界问题
  • 注意cap为0的情况

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

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

相关文章

pytorch版本与torchvision版本不匹配问题处理

pytorch版本与torchvision版本不匹配问题处理 问题问题复现解决方法两点注意内容其一&#xff1a;pytorch版本与torchvision版本对应关系其二&#xff1a;CPU版本或GPU版本问题 问题 在新环境中&#xff0c;利用yolov8训练模型的时候报错&#xff0c;错误内容如下&#xff1a;…

反射...

一、反射的定义 二、获取Class对象三种方式 全类名&#xff1a;包名类名。 public class test {public static void main(String [] args) throws ClassNotFoundException {//第一种方式Class class1Class.forName("test02.Student");//第二种方法Class class2Stud…

Nginx配置详细解释:(4)高级配置

目录 1.网页的状态页 2.Nginx第三方模块(echo) 3.变量 4.自定义访问日志 5.Nginx压缩功能 6.https功能 7.自定义图标 Nginx除了一些基本配置外&#xff0c;还有一些高级配置&#xff0c;如网页的状态&#xff0c;第三方模块需要另外安装&#xff0c;支持变量&#xff0c…

宽睿数字平台兼容TDengine 等多种数据库,提供行情解决方案

小T导读&#xff1a;最近&#xff0c;涛思数据与宽睿金融宣布了一项重要合作。在此之前&#xff0c;宽睿金融对 TDengine 进行了性能测试&#xff0c;并根据测试报告的结果&#xff0c;决定将 TDengine 接入宽睿数字平台&#xff0c;以提升高密度行情处理效率。本文将详细介绍此…

idea从git拉取代码需要输入token问题解决

idea使用git 推送代码时&#xff0c;提示token问题&#xff0c;这是因为你的代码仓库是gitlab&#xff0c; 然后打开修改代码后推送时&#xff0c;会默认使用gitlab插件&#xff0c;所以提示输入token解决方式就是把gitlab插件取消使用这样就好了。 取消之后再进行拉取代码即可…

【菜狗学前端】在原生微信小程序使用腾讯地图API接口

一直想调用一下地图API接口什么的&#xff0c;刚好遇到了这个实验就浅浅研究写了一下&#xff0c;顺便总结一下给其他没太了解的人一点便利&#xff0c;希望能够对你有所帮助~ 如何引入、配置、使用、显示。 PS:要是嫌麻烦想要源码/有什么问题欢迎评论/私信&#xff0c;问题的话…

[大模型]Gemma2b-Instruct Lora 微调

本节我们简要介绍如何基于 transformers、peft 等框架&#xff0c;对 Gemma2b 模型进行 Lora 微调。Lora 是一种高效微调方法&#xff0c;深入了解其原理可参见博客&#xff1a;知乎|深入浅出 Lora。 这个教程会在同目录下给大家提供一个 nodebook 文件&#xff0c;来让大家更…

AI智能体的分级

技术的分级 人们往往通过对一个复杂的技术进行分级&#xff0c;明确性能、适用范围和价值&#xff0c;方便比较、选择和管理&#xff0c;提高使用效率&#xff0c;促进资源合理分配和技术改进和标准化。 比如&#xff0c;国际汽车工程师学会&#xff08;SAE&#xff09;定义了自…

诊所管理系统有没有免费的?

随着消费市场的不断变化&#xff0c;消费型医疗领域逐渐受到重视&#xff0c;医疗机构面临激烈的行业竞争。为了提升诊所的经营管理效率和营销能力&#xff0c;选择一款合适的诊所管理系统变得尤为重要。然而&#xff0c;面对市场上众多的系统选择&#xff0c;如何找到适合自己…

Linux 安装ab测试工具

yum -y install httpd-tools ab -help #10个并发连接&#xff0c;100个请求 ab -n 200 -c 100 http://www.baidu.com/

如何制作MapBox个性化地图

我们在《如何在QGIS中加载MapBox图源》一文中&#xff0c;为你分享了在QGIS中加载MapBox的方法。 现在为你分享如何制作MapBox个性化地图的方法&#xff0c;如果你需要最新版本的QGIS及高清图源&#xff0c;请在文末查看获取软件安装包的方法。 新建地图样式 进入Mapbox Stu…

智慧监狱大数据整体解决方案(51页PPT)

方案介绍&#xff1a; 智慧监狱大数据整体解决方案通过集成先进的信息技术和大数据技术&#xff0c;实现对监狱管理的全面升级和智能化改造。该方案不仅提高了监狱管理的安全性和效率&#xff0c;还提升了监狱的智能化水平&#xff0c;为监狱的可持续发展提供了有力支持。 部…

计算机组成原理之计算机的性能指标

目录 计算机的性能指标 复习提示 1.计算机的主要性能指标 1.1机器字长 1.1.1与机器字长位数相同的部件 1.2数据通路带宽 1.3主存容量 1.4运算速度 1.4.1提高系统性能的综合措施 1.4.2时钟脉冲信号和时钟周期的相关概念 1.4.3主频和时钟周期的转换计算 1.4.4IPS的相关…

任务3.8.1 利用RDD实现词频统计

实战&#xff1a;利用RDD实现词频统计 目标 使用Apache Spark的RDD&#xff08;弹性分布式数据集&#xff09;模块实现一个词频统计程序。 环境准备 选择实现方式 确定使用Spark RDD进行词频统计。 Spark版本与Scala版本匹配 选择Spark 3.1.3与Scala 2.12.15以匹配现有Spar…

使用seq2seq架构实现英译法

seq2seq介绍 模型架构&#xff1a; Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种在自然语言处理&#xff08;NLP&#xff09;中广泛应用的架构&#xff0c;其核心思想是将一个序列作为输入&#xff0c;并输出另一个序列。这种模型特别适用于机器翻译、聊天…

定个小目标之刷LeetCode热题(11)

这是道简单题&#xff0c;只想到了暴力解法&#xff0c;就是用集合存储起来&#xff0c;然后找出其中的众数&#xff0c;看了一下题解&#xff0c;发现有多种解法&#xff0c;我觉得Boyer-Moore 投票算法是最优解&#xff0c;看了官方对这个算法的解释&#xff0c;我是这样理解…

每天一个数据分析题(三百五十九)- 多维分析模型

图中是某公司记录销售情况相关的表建立好的多维分析模型&#xff0c;请根据模型回答以下问题&#xff1a; 2&#xff09;产品表左连接品牌表的对应关系属于&#xff1f; A. 一对多 B. 一对一 C. 多对一 D. 多对多 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CD…

高光谱成像光源 实现对细微色差的分类--51camera

光源在机器视觉中的重要性不容小觑&#xff0c;它直接影响到图像的质量&#xff0c;进而影响整个系统的性能。然而自然光LED光源不能完全满足实际需求&#xff0c;比如对细微的色差进行分类&#xff0c;我们就需要考虑红外高光谱光源。 所谓高光谱成像&#xff0c;是指使用具有…

实现思路:Vue 子组件高度不固定下实现瀑布流布局

实现思路&#xff1a;Vue 子组件高度不固定下实现瀑布流布局 一、瀑布流布局基础实现原理 在深入解说不定高度子组件的瀑布流如何实现之前&#xff0c;先大体说一下子组件高度固定已知的这种实现原理&#xff1a; 有一个已知组件高度的数组。定义好这个瀑布流的列数&#xff…

【回调函数】

1.回调函数是什么&#xff1f; 回调函数就是⼀个通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被用来调用其所指向的函数 时&#xff0c;被调用的函数就是回调函数。回调函数不是由该函数的实现方…