随笔分类 -  Python

摘要:如果你还没有看过上一篇文章,请先移步看问题描述。扩展问题二:至多扫描一遍序列,求出丢失的两个数字。不管用什么方法,可以肯定的是我们至少需要扫描一遍序列。因为只能扫描一遍,所以先求出 a XOR b,再根据结果分类的方法就不适用了。既然我们不能根据某一位分类,那我们能否对所有位进行分类呢?比如,int是32位,我们可以对每一位都分成两类分别异或。我们还要记录每一位上1出现的次数,实际上,只需要记录1出现奇数次还是偶数次就够了。如果某一位上1出现奇数次,那么我们就知道 a 和 b 在此位上的比特不同。从而利用前面分类异或的结果就直接得出答案。Python 代码:deffind_missing_2_ 阅读全文
posted @ 2012-04-24 16:53 shilcare 阅读(1417) 评论(1) 推荐(1)
摘要:这是一个有趣的面试题。有一个袋子,里面放有1,2,3,...,100,共100个整数,且每个数字只出现一次。现在由于袋子破了个洞,造成其中一个数字丢失了。请找出丢失的数字。很容易想到的方法是:我们可以用减法,1+2+...+100的和减去袋子中所有数的和,其差就是丢失的那个数字。1 + 2 + ... + 100可以由等差数列公式100*(1+ 100)/2 = 5050算出,我们只需要遍历一次袋子中的数字即可。把这道题推广到一般情况:设π是{1, 2, ... , n}的一个全排列,π-1是π 中丢失了一个数字后的序列。找出序列π-1中缺失的数字。当n比较小时,我们仍可以用上面的方法,但是当 阅读全文
posted @ 2012-04-24 14:56 shilcare 阅读(3247) 评论(8) 推荐(3)
摘要:为什么要写这个小工具?昨天下午在网上闲逛,在百度贴吧看到一篇贴子,楼主通过不定时的发表回复来讲自己的故事,形象的称为“直播贴”。可是在看了十几页后,我发现由于回复的人越来越多,两段故事之间的间隔越来越大,这破坏了故事的连贯性,给看故事的人带来不便。于是就产生了写一个小工具只下载某人的发贴的想法。你是否也有过在百度贴吧“追直播”的痛苦经历?现在,你只要输入某个你想看的人的用户名和贴子的地址,就可以把这个人的贴子下载到你的电脑上,然后轻松的看直播了。‍使用说明打开命令行窗口,进入目录VSO,命令格式:vso.exe 用户名 贴子URL地址 [最大网页数]用户名—想要看的那个人的百度ID贴子URL地 阅读全文
posted @ 2011-05-28 16:10 shilcare 阅读(800) 评论(0) 推荐(0)