码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 232 Implement Queue using Stacks 和 231 Power of Two

时间:2015-07-07 11:07:50      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:leetcode   stack   queue   

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 和 231 Power of Two

标签:leetcode   stack   queue   

原文地址:http://blog.csdn.net/jeanphorn/article/details/46786003

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!