美文网首页算法
LCR 125. 图书整理 II

LCR 125. 图书整理 II

作者: 红树_ | 来源:发表于2023-11-12 15:52 被阅读0次

戚戚复戚戚,我心汝不知。

题目

LeetCode每日一题,参考LCR 125. 图书整理 II

解题思路

  • 队列:队列可直接实现,但是其实题目要求使用两个书车,需要使用两个栈来实现。
  • 两个栈:使用两个栈,一个A负责存书,一个B负责取书:存好办,直接往A里面压入存放就行;怎么取呢?一开始B为空,要取的时候把A全部弹出压入B,从B中弹出最上面的就行,如果B不为空,直接从里面取就行,这样保证取的都是最早存的书。

队列

class CQueue {
    ArrayDeque<Integer> q = new ArrayDeque<>();
    public CQueue() {}
    public void appendTail(int value) {
        q.offer(value);
    }
    public int deleteHead() {
        if(q.isEmpty()) return -1;
        else return q.pop();
    }
}

复杂度分析

  • 时间复杂度:O(1)
  • 空间复杂度:O(n)

两个栈模拟队列操作

两个栈可模拟队列,这个特性还是挺有意思的。

class CQueue {
    //针对栈的操作只能使用push和pop
    ArrayDeque<Integer> q1 = new ArrayDeque<>(), q2 = new ArrayDeque<>();
    public CQueue() {}
    //A用来存 B用来取
    public void appendTail(int value) {// O(1)
        q1.push(value);
    }
    public int deleteHead() { // 均摊 O(1)。对于每个元素,至多入栈和出栈各两次。
        if(q1.isEmpty()) return -1;
        while(q1.size() > 0) {
            q2.push(q1.pop());
        }
        int r = q2.pop();
        while(q2.size() > 0) {
            q1.push(q2.pop());
        }
        return r;
    }
}
/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue obj = new CQueue();
 * obj.appendTail(value);
 * int param_2 = obj.deleteHead();
 */

复杂度分析

  • 时间复杂度:O(1),均摊 O(1)。对于每个元素,至多入栈和出栈各两次。
  • 空间复杂度:O(n),n为图书馆书的总数。

2023/10/13

相关文章

  • LintCode 125. Backpack II

    原题 LintCode 125. Backpack II Description Given n items wi...

  • 125. 背包问题 II

    描述 给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大? 注意事...

  • 125. 背包问题 II

    描述 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值. ...

  • 34.History

    125. History

  • 整理图书

    今天最有意思的事情就是整理图书,首先是将书柜里面没放整齐的图书拿出来,重新分类摆放。其次是将最近正在看的书...

  • 整理图书

    继昨天的工作,今天继续整理图书,昨天我是前半天的班儿,今儿是后半天的。 昨天和校长、海茹一组,今天和海洋、腊阳一组...

  • 名著导读 |《一个为了拯救人类而牺牲的科幻爱情故事》

    ——整理自《三体II黑暗森林》罗辑与其梦中情人庄颜的故事 文|罗小祯 【导读前言】 本文整理自《三体II之黑暗森林...

  • Leetcode-125Valid Palindrome

    125. Valid Palindrome Given a string, determine if it is ...

  • LeetCode[125]

    125. Valid Palindrome Given a string, determine if it is ...

  • leetcode:125. Valid Palindrome

    125. Valid Palindrome Description Given a string, determi...

网友评论

    本文标题:LCR 125. 图书整理 II

    本文链接:https://www.haomeiwen.com/subject/ayfrwdtx.html