编程之美
文章平均质量分 78
insistGoGo
这个作者很懒,什么都没留下…
展开
-
编程之美_2.3_寻找发帖水王
前提:给出一个ID数组,其中每个ID都可能重复出现,其中一个ID的重复出现个数超过了数组长度的一半。问题:要找出这个水王ID要求:要求时间和空间代价最小等价于:找出数组中元素过半的元素,要求时间和空间代价最小扩展:1、ID数组中,有三个水王ID,这三个水王ID重复出现的次数,都超过了数组长度的1/4。要求快速找到这3个水王ID。2、ID数组中,有 K个水王I原创 2012-05-22 14:30:37 · 9735 阅读 · 1 评论 -
每日一题(84) - 区间重合判断
题目来自编程之美题目思路(1):预处理:O(n)把给出的所有区间全部映射到一个一维数组上,该一维数组中的元素等于元素下标所在区间的起始位置查询:O(1)首先判断待查区间的终点是否在一维数组上,如果在,看终点的起点是否小于待查区间的起点,如果小于等于,则包含。如果大于,则不包含。如果不在,则已知区间不包含待查区间。举例:已知区间:1 3;2 5;7 9原创 2013-08-29 10:35:31 · 1390 阅读 · 0 评论 -
编程之美_2.2_不要被阶乘吓倒
问题描述1、给定一个整数N,阶乘N!末尾有多少个02、求N!的二进制表示中最低位1的位置1、给定一个整数N,阶乘N!末尾有多少个0举例:10!=3 628 800,则 N!的末尾有两个0思路: 即,知道 Z ,就知道N!中含有0的个数方法一:求出1~N中每一个数被5整除的因子的个数,比较笨代码:int ret = 0;for(int i=1;i<=N;i原创 2012-06-22 20:17:24 · 2556 阅读 · 1 评论 -
编程之美_2.10_寻找数组中的最大值和最小值
问题描述:给出一个数组,包含N个整数,那么需要比较多少次找到最大值和最小值注意:要想得到最大值和最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较次数来提高效率方法一、遍历一遍数组,同时得到最大值和最小值具体是,定义一个max 和 min,每遍历一个数,就分别和max 和 min比较一次,直到处理完所有的数据比较次数: N+N = 2N方法二、我们可以把数组中的数据两两原创 2012-06-26 18:02:03 · 9207 阅读 · 2 评论 -
求二进制数中1的个数
原文链接问题描述任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法,但我相信很少有人见到本文中所有的算法。如果您上头上有更好的算法,或者本文没有提到的算法,请不要吝惜转载 2013-06-25 09:53:06 · 1198 阅读 · 0 评论 -
每日一题(24) - 快速寻找满足条件的两个数
题目来自编程之美题目:给出一个有序数组和一个数字(定值),寻找和为定值的两个数要求:时间复杂度是O(n),空间复杂度为O(1)思想:代码:#include #include using namespace std;void Find(int nArr[],int nLen,int nSum){ assert(nArr != NULL && nLen > 0);原创 2013-07-05 16:05:33 · 1394 阅读 · 0 评论 -
编程之美_单链表面试题_结合3.4_3.6
一、单链表结点的删除0、删除单链表p指向的那个元素,(时间和空间复杂度尽量小)二、单链表的存取1、找出单链表的倒数第K个元素,(仅允许遍历一遍链表)2、找出单链表的中间元素,(仅允许遍历一遍链表)三、单链表与环的问题3、判断单链表是否有环(6形状)?4、如何找到环的入口?5、如何知道环的长度?6、带环链表的长度是多少?四、单链表与相交、环的问原创 2012-05-20 09:59:31 · 3101 阅读 · 0 评论 -
编程之美_2.5_寻找最大的k个数
题目描述:输入n个整数,输出其中最大的k个。举例:输入序列1、2、3、4、5、6、7、8,输出最大的4个数字为5、6、7、8。可能存在的条件限制:要求 时间 和 空间消耗最小、海量数据、待排序的数据可能是浮点数等方法一:对所有元素进行排序,之后取出前K个元素,不提倡使用思路:使用最快排序算法,选择快排 或 堆排时间复杂度:O(n*logn) + O(K) = O(n*log原创 2012-06-25 12:36:36 · 7306 阅读 · 3 评论 -
编程之美_1.5_快速找出机器故障
题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表中缺少的是两个不等的ID)扩展题、如果所有的原创 2012-06-24 21:15:39 · 5056 阅读 · 5 评论 -
每日一题(90) - 磁带文件存放优化
题目和思路均来自编程之美题目:磁带上有n个文件,长度分别为L[0],L[1], ..., L[n-1]且被访问的概率分别为P[0],P[1],...,P[n-1]。要访问磁带上第n个文件,须要依次经过前面n-1个文件。分别给出三种情况,求如何安排文件在磁带上的存储顺序,使得访问这些文件所需经过的平均磁带长度最短? 每一个文件被访问的概率相等,但文件长度不同,求所有文件的存储顺序。原创 2013-09-07 23:01:10 · 2737 阅读 · 1 评论