Leetcode 232 Implement Queue using Stacks 和 231 Power of Two
2015-07-07 10:32
525 查看
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] Implement Queue using Stacks 用栈来实现队列
- JAVA 中 CharSequence 类型
- 华为S8508交换机的问题
- [SoapUI] context.expand 和 groovyUtils.getXmlHolder 有什么不一样
- 从客户端(hidXML="<FlexCell xml:space=...")中检测到有潜在危险的Request.Form值
- [XCode] 默认源文件和build目录
- 不要直接对Request.Headers["If-Modified-Since"]使用Convert.ToDateTime
- UIScrollView详解
- windows 10 build 10162无法识别网卡怎么办?
- ext笔记(te be continued..)
- 全新Win10预览版本周推送,或为Build 10164
- 视频:Win10 Mobile Build 10158模拟器上手视频演示
- EasyUi 中datagrid 实现查询方法
- [SoapUI] 通过Groovy获取SoapUI当前Project所在的目录
- PHP中include和require的区别详解
- 取到easyui的tab下iframe方法
- c# KeyValue与KeyData与KeyCode区别(转)
- Win10 RTM正式版首个候选版Build 10176编译完成
- Windows 10 Build 10162向Slow Ring通道推送
- NSURLRequestCachePolicy