![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程之美
kimili1987
对数据挖掘、自然语言处理、机器学习、云计算、可信、linux open source有兴趣,希望大家和我交流
展开
-
编程之美-2.2-不要被阶乘吓倒
题目:1. 给定一个整数N,那么N的阶乘N!末尾有多少个0?2. 求N!的二进制表示中最低位1的位置。分析与解答:对于题目1:最简单直接的方法,算出N!再看10的倍数关系。复杂度虽然不高,但致命的问题是溢出。在N不到100的时候就会引起溢出,所以虽然这是一个正确的方法,但在实际中却不能使用。这时就需要算法来解决问题,通过其他的途径而不是先要计算N!而求出最后的结果。考虑N!原创 2012-10-03 13:08:57 · 955 阅读 · 0 评论 -
编程之美-2.1-求二进制数中1的个数
题目:对于一个字节的无符号整形变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。刚看到这个题,首先想到的就是对二进制数进行向移位操作,看末位是不是1。这个即为书中给出的第二种方案:/* 方案2,移位操作*/ int Count(BYTE v){ int num = 0; while(v){ num += v & 0x01; //与原创 2012-10-03 11:02:40 · 1416 阅读 · 0 评论 -
编程之美题目分析-汇总
之前也算是草草看过一遍编程之美,但是后头再看,发现算法这玩意,不能光看,当时看明白了,可能很快也会忘了,还是需要自己的理解和分析。这一篇会作为一个编程之美中题目的索引,给出自己的相关博客,和其他人的链接。以此作为勉励吧,先从简单的开始。从第二章开始。编程之美-2.1-求二进制数中1的个数http://blog.csdn.net/kimili1987/article/detail原创 2012-10-03 10:31:43 · 1432 阅读 · 0 评论 -
编程之美-2.3-寻找发帖“水王”
题目:寻找一个ID列表中,有一个ID超过了总数的一半,找出这个ID分析:可以对ID进行排序,因为需要寻找的ID超过了一半,所以该ID列表ID[N]中,ID[N/2]一定是这个ID值。复杂度为O(NlgN+1),如果用排序这种方法解决的话,复杂度应该就维持在这个水平,不会降低。再思考一下,难道一定需要排序吗,针对这个问题,我们只是想找出ID数量超过一半的那个唯一的ID。如果每次删除两个不同的原创 2012-10-03 14:17:19 · 6728 阅读 · 0 评论