算法通关:013:设计循环队列

题目

leetcode:622设计循环队列

主要代码

 //循环设计队列
    class MyCircularQueue{
        public int[] queue;

        public int l, r, size, limit;

        //方法,新建一个循环队列(用数组的形式)
        //同时在队列里的数字个数不要超过k
        public MyCircularQueue(int k){
            queue = new int[k];
            l = r = size = 0;
            limit = k;
        }
        public boolean isEmpty(){
            return size == 0;
        }
        public boolean isFull(){
            return size == limit;
        }


        public boolean enQueue(int num){

            //如果队列满了,什么也不做,返回false
            //如果队列没满,就加入value,返回true
            if(isFull()){
                return false;
            }else{
                queue[r] = num;
                r = r == limit - 1 ? 0 : (r + 1);//这个比取模要好懂
                size++;
                return true;
            }
        }


        public boolean deQueue(){
            if(isEmpty()){
                return false;
            }else{
                l = l == limit - 1 ? 0 : (l + 1);
                size--;
                return true;
            }
        }
        //返回队列头部数字
        public int Front(){
            if(isEmpty()){
                return -1;
            }else {
                return queue[l];
            }
        }
        //返回尾部数字
        public int Rear(){
            if(isEmpty()){
                return -1;
            }else{
                /*新加入的数字是放在r位置上的
                * 并且是循环队列
                * 所以 队尾的位置就应该在r-1  或者  limit-1 的位置*/
                int last = r == 0 ? (limit-1) : (r - 1);//不太好表示,所以引入last
                return queue[last];
            }
        }
    }

运行结果

在这里插入图片描述

纠错

简写

public boolean isEmpty(){
	if(l == r){
		return true;
	}
}

这个写法多了,方法体可以直接写return l == r

方法错误地被当作变量使用

主要是leetcode每提示,手敲的,然后也没看懂报错,要是看懂的我肯定就不往上放了在这里插入图片描述

总结

点击调转总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值