February 21st, 2012 02]
He, 我想我有新东西玩了。





不就找工作嘛,这回认真的了,可怕着咧。
Given an array
一般故事的开头都是这样,先是Given an array.
* Sorted version
这应该是最简单的版本,给定已排好的array, A[1...N],range from 1 to N+1。这意味着这个数组里有一个数是missing的。故事的结局嘛,就是找出这个missing的number。
-最简单的方法就是直接把array里的数从1叠加到N+1,得到real_sum。然后,再从1叠加到N+1,得到expectd_sum。最后expected_sum-real_sum得到的结果就是我们要找的missing number。
不过如果N很大,这种方法就会碰到over flow的情况。
* unSorted && N非常大
-为了避免over flow或者题目变成unsorted,需要用第二种方法。
xor有个很有用的性质,同一个数和自己xor,将会抵消掉效果。所以我们可以先从array[1] xor到array[N+1],得到的结果再与1到N+1进行xor操作。因为xor的性质,出现两次的数都给xor掉,剩下的就是我们要找的那个missing number。
* 基于以上的两个版本,可以衍生出一些其他的题目。
例如,一个array里所有的Integer都出现了偶数次,只有一个出现了奇数次。xor之后,剩下的就是出现奇数次的数。
* 在geeksforgeeks上看到一个更贱的版本。原文在这。
Let us see an example.
arr[] = {2, 4, 7, 9, 2, 4}
1) Get the XOR of all the elements.
xor = 2^4^7^9^2^4 = 14 (1110)
2) Get a number which has only one set bit of the xor.
Since we can easily get the rightmost set bit, let us use it.
set_bit_no = xor & ~(xor-1) = (1110) & ~(1101) = 0010
Now set_bit_no will have only set as rightmost set bit of xor.
3) Now divide the elements in two sets and do xor of
elements in each set, and we get the non-repeating
elements 7 and 9. Please see implementation for this
step.
* 如果再有其他的版本,再来update这。
收拾是件好东西,房间里瞎折腾。累了就窝在沙发里。
——————————————————————————————-
少女情怀电影对分散注意力一点作用都没有,趁胡想瞎想开始前趁早关掉。
——————————————————————————————-
Hanjin Tan。
印象中的Hanjin一直都是一个傻傻的制作人。第一次听他的歌还是去年Shawn的“男人都爱麻烦”。再早的,就是Eason的爱是怀疑了。前段时间,Hanjin crossover了MC Jin. “买一送一”。虽然满喜欢MC Jin.的(一部分原因是同名啦),但都机会去细听。今天偶然搜到了Moov Live的买一送一。
一发不可收拾。
翻看Hanjin的Interview或者节目会发现,他脸上总挂着傻傻的笑容。Super voice上,冷场的评论后,因为他脸上的笑容,反而觉得十分的可爱。So, get smiled.
——————————————————————————————-
旧的耳机卖掉,新的耳机未到。带着多年的px100,还好有Hanjin。多谢音乐。

——————————————————————————————-
不好玩,还老是睡不着,不玩了。
把它包起来,藏好,放两个门神挡着,来一个挡一个。不开心,就拿出来爽一下。
上床继续耍。
——————————————————————————————-
人呢,入戏的时候总会觉得每个剧本都是自己的。



其实这俩的背影,就看出一个词,笃定。




初中就开始一块玩的那群人,算是情谊最深的一批。
想不到的是,第一个结婚的,会是国威。
去买衣服,买鞋时,服务员总让你先试一试,看了效果再来谈价钱。那的确是。很多东西,都是试了,经历过了,才会有憧憬。
国威的婚礼,客观的说,中规中矩。但站在兄弟的角度来说,感慨良多。
微博上给刷了几天的屏。希望来日,也能谈谈价钱。

在家里待着就是容易犯懒,8点多就想睡觉,然后一睡睡到第二天的早上。饭点的时候各种消遣活动。这种状态可不是什么好事。虽然答应了昨晚开始学习,但又是睡了过去。但绝不是今天!
把老早前找实习时收到的一份网上题目搜了出来,重新做了一遍,总结一下,对,就是总结给你看的!
Q1: Find Greatest Common Divisor.
当时给题目时,算法描述也一块带了过来,挺奇怪的,就是实现?
Algorithm:
欧几里得算法
分析:求最大公约数的算法思想:
(1) 对于已知两数m,n,使得m>n;
(2) m除以n得余数r;
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);
(4) m←n,n←r,再重复执行(2)。
例如: 求 m=14 ,n=6 的最大公约数. m n r
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> using namespace std; int gcd(int m, int n) { if(0 == m) return n; if(0 == n) return m; if(m<n) { int temp = m; m = n; n = temp; } while(0!= n) { int rem = m%n; m = n; n = rem; } return m; } int main(int argc, const char* argv[]) { if(argc < 3) { cout << "Usage: ./gcd <num1> <num2>" << endl; return 0; } int m = (int)strtoul(argv[1], 0, 0); int n = (int)strtoul(argv[2], 0, 0); cout << "Gcd of " << m << " and " << n << " are: " << gcd(m, n) << endl; return 0; } |
Q2: Linux 基础命令(悔不当初啊)
1.列出当前目录所有.log文件
1 | ls *.log |
2.查找home目录下,所有log文件含有abc字符串的文件
1 | find /home -name “*.log” | xargs grep “abc” |
3.查找在系统中最后10分钟访问的文件
1 | find / -amin -10 |
Linux 下find 命令的使用
4.查找在系统中属于FRED这个用户的文件
1 | find / -user FRED |
5.一个文件格式如下,写一个脚本统计其所有重复行的行数
abc
hjg
bcd
abc
bcd
kkk
输出结果示例:
2 abc
2 bcd
1 hjg
1 kkk
1 | sort file | uniq -c |
6.显示输出没有字符“48”所有的行
1 | grep -v “48” file |
7.去掉一个文件内所有重复的行
1 | sort file.txt | uniq -u |
10点半,慢慢悠悠的开车到公司。瞎折腾了一会,Tom跑了进来,和往常一样,兴致冲冲的冲我和Nitin喊,“OK, here is the deal. We are going to have Christmas lunch today.” 哈,中午又有好吃的了。
Pancake,似乎对于美国人来说,有一种别样的记忆。在这种类似于团圆饭的聚餐中,大家都选择了pancake。
第一次参加这种除旧迎新味十足的聚会,另一个intern对egg过敏,我就理所当然的成为大家调侃的对象。在大家怂恿的情况下,order了颇为温和的dutch baby.但看着大家脸上的坏笑,可以想象到这货不是什么善男信女。
Cool, here is the Dutch baby!

完全颠覆了我对pancake的印象。自己做的那种,就好像贫民窟里的食物。
吃饱喝足,大家开始闲扯。显呗一下子集颇能拉近大家距离的king of opera.
“So, today is your last day.” 老板不经意间的一句话。回国,回来,上课,少了的,是不用再在学校与公司间进行周旋。
6月份入职,12月份离职。自己第一份实打实找回来的实习。到现在还记得当初收到Rosemary邮件的那股兴奋感。
2011的最后,又给自己盖了一个阶段性的印章。
2012的开始,不管有没有世界末日,都要为了现在设定的目标走下去。
Last by not the least, thanks all of you.
