
algorithm
grant_alliswell
It's never too late to be what you might have been.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何使用为逻辑运算实现位向量(PROGRAMMING PEARLS)
#define BITSTEPWORD 32 #define SHIFT 5 #define MASK 0X1F #define N 10000000 int a[1 + N/BITSTEPWORD]; void set(int i) { a[i >> SHIFT] |= (1 void clr(int i) { a[i >> SHIFT] &= ~(1 int翻译 2015-01-30 20:59:10 · 468 阅读 · 0 评论 -
Cracking code interviews_1
题目数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法,找到x。分析乍一看这个题目,不少同学立马给出了答案:异或。但举个例子,就会发现,异或是行不通的,一般的方法是利用异或的的如下特性:A xor A = 0A xor 0 = A但是这个题目中,数字都是奇数个的,直接采用之前类似题目的异或方法,已经不合适了。除此之外,我们还可能想到如下的方法:采用hashmap,原创 2015-12-24 21:47:25 · 419 阅读 · 0 评论 -
Cracking code interviews_2
题目一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。分析何在一个数组中找出两个只出现一次的数字。在这道题中,如果我们能够找出一个只出现一次的数字,剩下两个只出现一次的数字就很容易找出来了。如果我们把数组中所有数字都异或起来,那最终的结果(记为x)就是a、b、c三个数字的异或结果(x=a^b^c)。其他出现了两次的数字在异或运算中相互抵消了。我们可以证明异或转载 2015-12-24 22:56:06 · 382 阅读 · 0 评论 -
火车进站 华为oj(转)
#include #include #include #include using namespace std; int main() { int num; string str="ABCDEFGHIJ",a; vectorstring> tmp; cin>>num; getchar(); getline(cin,a); str=str.substr(0,num); t转载 2016-11-14 23:50:59 · 441 阅读 · 0 评论