day08之元素出栈、入栈顺序的合法性+计算一个整数二进制位中1的个数
2017-07-20 23:51
288 查看
元素出栈、入栈顺序的合法性
如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。
计算一个整数二进制位中1的个数
要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。
如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。
bool IsPopOrder(vector<int> pushV,vector<int> popV) { if(pushV.size() != popV.size()) return false; stack<int> s; int j = 0; for(int i = 0; i < pushV.size(); ++i) { s.push(pushV[i]); while( !s.empty() &&s.top() == popV[j]) { s.pop(); j++; } } return s.size() == 0; }
计算一个整数二进制位中1的个数
要求效率尽可能的高。且能正确求正数和负数的二进制中1的个数。
int NumberOf1(int n) { int num = 0; while(n) { num++; n = n & (n-1); } return num; }
相关文章推荐
- 元素出栈、入栈顺序的合法性/计算一个整数二进制位中1的个数。
- 元素出栈、入栈顺序的合法性(判断一个字符串是否按照出栈顺序)
- -元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。
- 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输入数值范围:2<=n<
- 判断元素出栈,入栈顺序的合法性
- 设一个长度为10的整型数组, 0)要求每个元素的值通过scanf输入,输入完成后, 1)请顺序输出这些整数, 2)请倒序输出这些整数, 3)输出这些数中的最大值, 4)输出这些数中的最小值
- 元素出栈、入栈顺序的合法性
- 计算一个整数二进制位中1的个数
- [置顶] 关于元素出栈、入栈顺序的合法性的事儿
- 面试题:正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,给定a和b,需要计算出Q中的前几项
- 16、正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b, 需要计算出Q中的前几项
- 元素出栈、入栈顺序的合法性
- 对于一个整数数组排序,按从小到大顺序排序,数组的元素个数不定
- ~元素出栈、入栈顺序的合法性~
- 元素的出栈、入栈顺序的合法性。
- 计算一个整数二进制位中1的个数
- 【1】 设一个长度为10的整型数组,  0)要求每个元素的值通过scanf输入,输入完成后,  1)请顺序输出这些整数,  2)请倒序输出这些整数,  3)输出这些数中的最大值,最小值
- 计算一个二维整数数组score所有元素的平均值。
- 计算一个整数二进制位中1的个数
- 元素出栈、入栈顺序的合法性