zoukankan      html  css  js  c++  java
  • Leetcode 232 Implement Queue using Stacks 和 231 Power of Two

    1. 232 Implement Queue using Stacks

    1.1 问题描写叙述

      使用栈模拟实现队列。模拟实现例如以下操作:
      

    • push(x). 将元素x放入队尾。
    • pop(). 移除队首元素。
    • peek(). 获取队首元素。
    • empty(). 推断队列是否为空。

    注意:仅仅能使用栈的标准操作,push,pop,size和empty函数。


    1.2 方法与思路

       本题和用队列实现栈思路一样,设两个辅助栈stk1和stk2。


       push(x): 将x入栈stk1.
       pop(): 依次将stk1中的元素pop到stk2中。仅仅留最后一个pop掉。然后再将stk2中的元素pop到stk1中。
       peek(): 和pop操作相似,仅仅只是最后一个元素不是pop,而是取值返回。
       empty(): 直接推断stk1是否为空就可以。

    class Queue {
        stack<int> stk1,stk2;
    public:
        // Push element x to the back of queue.
        void push(int x) {
            stk1.push(x);
        }
    
        // Removes the element from in front of queue.
        void pop(void) {
            while(stk1.size() > 1)
            {
                stk2.push(stk1.top());
                stk1.pop();
            }
            if(stk1.size() == 1)
                stk1.pop();
            while(!stk2.empty())
                stk1.push(stk2.top()),stk2.pop();
        }
    
        // Get the front element.
        int peek(void) {
            int re;
            while(stk1.size() > 1)
            {
                stk2.push(stk1.top());
                stk1.pop();
            }
            if(stk1.size() == 1)
                re = stk1.top();
    
            while(!stk2.empty())
                stk1.push(stk2.top()),stk2.pop();
    
            return re;
        }
    
        // Return whether the queue is empty.
        bool empty(void) {
            return stk1.empty();
        }
    };

    2. 231 Power of Two

    2.1 问题描写叙述

      推断一个整数是不是2的幂次方。

    2.2 思路与方法

      超简单的题目,题目给出的n最大为int的最大值,那么仅仅须要遍历i从1到30依次计算2的i次方是不是数n就可以。
      

    class Solution {
    public:
        bool isPowerOfTwo(int n) {
            for(int i=0; i < 31; i++)
            {
                if(pow(2,(double)i) == n) return true;
            }
    
            return false;
        }
    };
  • 相关阅读:
    Lua实现的专栏
    Lua C#
    windows server 开机自动登录并锁定
    关于SQLSERVER2012版本远程登录问题
    处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    SQLServer安装正常服务启动正常却无法连接
    C#程序猿电脑重装记录
    installshield使用教程
    macbook安装win7
    mvc 开发razor模式注意事项
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7227205.html
Copyright © 2011-2022 走看看