zoukankan      html  css  js  c++  java
  • LeetCode

    前言

    /**
     * @Description LeetCode 1381. 设计一个支持增量操作的栈
     * 实现自定义栈类 CustomStack :
     *      CustomStack(int maxSize):用 maxSize 初始化对象,maxSize 是栈中最多能容纳的元素数量,
     * 								  栈在增长到 maxSize 之后则不支持 push 操作。
     *      void push(int x):如果栈还未增长到 maxSize ,就将 x 添加到栈顶。
     *      int pop():弹出栈顶元素,并返回栈顶的值,或栈为空时返回 -1 。
     *      void inc(int k, int val):栈底的 k 个元素的值都增加 val 。如果栈中元素总数小于 k ,则栈中的所有元素都增加 val。
     *
     * 来源:力扣(LeetCode)
     * 链接:https://leetcode-cn.com/problems/design-a-stack-with-increment-operation
     */
    

    具体实现

    • 实现类
    public class CustomStack {
    
        /**
         * 栈
         */
        private Integer[] stack;
    
        /**
         * 栈顶位置
         */
        int top;
    
        /**
         * 构造方法
         * @param maxSize
         */
        public CustomStack(int maxSize) {
            stack = new Integer[maxSize];
            top = -1;
        }
    
        /**
         * 添加元素
         * 判断当前元素的个数是否达到上限,如果没有达到,
         * 就把 top 后移一个位置并添加一个元素。
         * @param x
         */
        public void push(int x) {
            if (top != stack.length - 1) {
                top ++;
                stack[top] = x;
            }
        }
    
        /**
         * 元素出栈
         * 判断当前栈是否为空,非空返回栈顶元素并将 top 前移一位,否则返回 -1
         * @return
         */
        public int pop() {
            if (top == -1) {
                return -1;
            }
    
            -- top;
            return stack[top + 1];
        }
    
        /**
         * 栈底的 k 个元素的值都增加 val。如果栈中元素总数小于 k,则栈中的所有元素都增加 val
         * 直接对栈底的最多 k 个元素加上 val
         * @param k
         * @param val
         */
        public void increment(int k, int val) {
            for (int i = 0; i < Math.min(k, top + 1); i++) {
                stack[i] += val;
            }
        }
    }
    
    - End -
    一个努力中的公众号
    关注一下吧
    以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
    作者:Maggieq8324
    本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。
  • 相关阅读:
    微信开发之获取用户信息
    tomcat支持php
    myecplise自带的tomcat问题
    php项目报错 Warning: session_start(): open(D:/software/wamp/wamp/tmpsess_msrjot7f32ciqb1p2hr4ahejg4, O_RDWR) f
    magento获取商品的图片
    python链接mysql
    cordova,可以尝试下!
    小程序来了
    App开发需要了解的基本技术
    web APP到底和跨平台APP开发有什么区别?
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/14990639.html
Copyright © 2011-2022 走看看