Leetcode 232 Implement Queue using Stacks 和 231 Power of Two

原创 2015年07月07日 10:32:10

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;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

【leetcode】232. Implement Queue using Stacks

一、题目描述 Implement the following operations of a queue using stacks. push(x) -- Push element x...

LeetCode232 Implement Queue using Stacks Java 题解

题目: Implement the following operations of a queue using stacks. push(x) -- Push element x to...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

LeetCode232—Implement Queue using Stacks

LeetCode232: Implement Queue using Stacks

LeetCode 232 Implement Queue using Stacks(用栈来实现队列)(*)

翻译用栈来实现队列的下列操作。push(x) —— 将元素x写入到队列的尾部 pop() —— 从队列首部移除元素 peek() —— 返回队列首部元素 empty() —— 返回队列是否为空注意:你...
  • NoMasp
  • NoMasp
  • 2016-01-20 21:18
  • 2223

[leetcode: Python]232. Implement Queue using Stacks

题目: Implement the following operations of a queue using stacks.push(x) – Push element x to the back...
  • NXHYD
  • NXHYD
  • 2017-05-12 13:09
  • 86

[LeetCode]232.Implement Queue using Stacks

题目Implement the following operations of a queue using stacks.push(x) – Push element x to the back of...

[leetcode] 232. Implement Queue using Stacks

Implement the following operations of a queue using stacks. push(x) -- Push element x to the back o...

leetcode 232. Implement Queue using Stacks

解题思路: 用栈的基本操作实现队列的基本操作 原题目:Implement the following operations of a queue using stacks.push(x) -- P...

Leetcode232. Implement Queue using Stacks

原题 Implement the following operations of a queue using stacks.push(x) – Push element x to the back ...

leetcode stack 232. Implement Queue using Stacks

法一:使用两个栈模拟队列。class Queue { private: stack q_input; stack q_output; public: // Push eleme...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)