
Beauty of Programming
胡凯me
欢迎访问我的独立网站hukai.me
展开
-
【编程之美】2.3 - 寻找发贴"水王"
问题描述:”水王“发贴数超过所有帖子总数的一半,现有此论坛上所有帖子的列表,包含ID,如何快速找出这个水王?解法一:对所有ID进行排序,再扫描一遍排好序的ID列表,统计各个ID出现的次数,如果某个ID出现的次数超过总数的一半,那么就输出这个ID。时间复杂度为O(N*log2N + N).解法二:既然已经排好序,而且有某个ID出现的次数超过总数的一半,那么ID列表的中间项一定是这个I翻译 2012-06-05 23:29:43 · 9689 阅读 · 0 评论 -
【编程之美】2.1 - 求二进制数中1的个数
问题描述:对于一个字节(8bit)的无符号整形变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。解法一:利用整形数据除法的特点,通过相除和判断余数的值来分析int Count(BYTE v){ int num = 0; while(v) { if(v % 2 == 1) {翻译 2012-06-04 23:07:03 · 988 阅读 · 0 评论 -
【编程之美】3.6 - 判断两个链表是否相交
问题描述:给出两个单向链表的头指针(h1,h2),判断这两个链表是否相交。假设两个链表均不带环。解法一:直观的想法判断第一个链表胡每一个节点是否在第二个链表中。时间复杂度为O(Length(h1)*Length(h2))。解法二:利用计数的方法如果两个链表相交,就会有共同的节点。我们可以把第一个链表的节点地址进行hash排序,建立Hash表,然后针对第二个链表的翻译 2012-06-06 23:01:53 · 1274 阅读 · 0 评论