zoukankan      html  css  js  c++  java
  • 剑指 Offer 009. 用两个栈实现队列 栈

    地址 https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/

    用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。
    (若队列中没有元素,deleteHead 操作返回 -1 )   示例 1: 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1]
    示例
    2: 输入: ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"] [[],[],[5],[2],[],[]] 输出:[null,-1,null,null,5,2] 提示: 1 <= values <= 10000 最多会对 appendTail、deleteHead 进行 10000 次调用

    解答

     

    代码

    class CQueue {
    public:
        stack<int> stN;
        stack<int> stR;
        int curr ;
        CQueue() {
             while (!stN.empty()) {
                stN.pop();
            }
            while (!stR.empty()) {
                stR.pop();
            }
        }
        
        void appendTail(int value) {
            stN.push(value);
        }
        
        int deleteHead() {
            while(!stN.empty()){
                int val = stN.top();stN.pop();
                stR.push(val);
            }
            int ret = -1;
            if(!stR.empty()){
                 ret = stR.top(); stR.pop();         
            }
            while(!stR.empty()){
                int val = stR.top(); stR.pop();
                stN.push(val);
            }
           
            return ret;
        }
    };
    
    /**
     * Your CQueue object will be instantiated and called as such:
     * CQueue* obj = new CQueue();
     * obj->appendTail(value);
     * int param_2 = obj->deleteHead();
     */
  • 相关阅读:
    Windows 8实例教程系列 开篇
    qt 开发发布于 windeploy.exe
    qt qoci 测试验证
    vmware vmx 版本不兼容
    qt oracle
    vc qt dll
    QOCIDriver unable to create environment
    qoci 编译完 放置位置 具体根据情况
    calling 'lastError' with incomplete return type 'QSqlError' qsqlquer
    Hbase 操作工具类
  • 原文地址:https://www.cnblogs.com/itdef/p/14231517.html
Copyright © 2011-2022 走看看