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;
    }
};

Non Power of Two Textures 无二次幂限制的纹理

无二次幂限制的纹理(Non-Power-of-Two Textures)   OpenGL仅支持分辨率为2mx2n的纹理。但现在我们可以使用“无二次幂限制”的纹理。   OpenGL only...
  • wolf96
  • wolf96
  • 2015年09月04日 14:40
  • 1855

Leetcode全字符问题

目录 1、编号3 Longest Substring Without Repeating Characters 2、编号6 ZigZag Conversion 3、编号20 Valid Parent...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月07日 08:09
  • 2821

Stack_Queue 一个数组实现三个栈 @CareerCup

原文: Describe how you could use a single array to implement three stacks. 译文: 你如何只用一个数组实现三个栈...
  • hellobinfeng
  • hellobinfeng
  • 2014年03月01日 11:35
  • 1732

Leetcode 232. Implement Queue using Stacks (Easy) (cpp)

Leetcode 232. Implement Queue using Stacks (Easy) (cpp)
  • Niko_Ke
  • Niko_Ke
  • 2016年07月20日 16:35
  • 252

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

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

[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
  • 187

[LeetCode]232.Implement Queue using Stacks

题目Implement the following operations of a queue using stacks.push(x) – Push element x to the back of...
  • SunnyYoona
  • SunnyYoona
  • 2015年08月01日 08:55
  • 1102

[leetcode] 232. Implement Queue using Stacks

Implement the following operations of a queue using stacks. push(x) -- Push element x to the back o...
  • denny851108
  • denny851108
  • 2016年07月19日 13:22
  • 104

leetcode 232. Implement Queue using Stacks

解题思路: 用栈的基本操作实现队列的基本操作 原题目:Implement the following operations of a queue using stacks.push(x) -- P...
  • yanzhenbo1
  • yanzhenbo1
  • 2016年10月24日 12:30
  • 95

Leetcode232. Implement Queue using Stacks

原题 Implement the following operations of a queue using stacks.push(x) – Push element x to the back ...
  • weifang0626
  • weifang0626
  • 2016年12月12日 09:46
  • 96
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode 232 Implement Queue using Stacks 和 231 Power of Two
举报原因:
原因补充:

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