全球新资讯:#yyds干货盘点# LeetCode程序员面试金典:三合一

2022-12-14 18:01:08 来源:51CTO博客


【资料图】

题目:

三合一。描述如何只用一个数组来实现三个栈。

你应该实现push(stackNum, value)、pop(stackNum)、isEmpty(stackNum)、peek(stackNum)​方法。stackNum​表示栈下标,value表示压入的值。

构造函数会传入一个stackSize参数,代表每个栈的大小。

示例1:

输入:["TripleInOne", "push", "push", "pop", "pop", "pop", "isEmpty"][[1], [0, 1], [0, 2], [0], [0], [0], [0]] 输出:[null, null, null, 1, -1, -1, true]说明:当栈为空时`pop, peek`返回-1,当栈满时`push`不压入元素。

示例2:

输入:["TripleInOne", "push", "push", "push", "pop", "pop", "pop", "peek"][[2], [0, 1], [0, 2], [0, 3], [0], [0], [0], [0]] 输出:[null, null, null, null, 2, 1, -1, -1]

代码实现:

class TripleInOne {    private final int STACK_SIZE;   //栈大小    private int[] index;    //当前栈的栈顶指针    private int[][] stack;  //栈    public TripleInOne(int stackSize) {     //初始化操作        this.STACK_SIZE=stackSize;        this.index=new int[]{-1,-1,-1};        this.stack=new int[3][STACK_SIZE];    }    public void push(int stackNum, int value) {        if(index[stackNum]+1                

标签: 构造函数 添加元素

上一篇:每日报道:Spring Integration的网络通量支持
下一篇:每日播报!Java-快速入门、IDEA开发工具的使用1-笔记