上一页 1 ··· 5 6 7 8 9 10 下一页
摘要: 首先,判断一个链表是否有环?对于这个问题:可以用两个指针,刚开始都指向头节点,然后一个指针每次向后移一步,另一个指针每次向后移两步,如果最后移两步的指针为空时,说明无环,如果最后两个指针相等,说明有环。如果把第一指针看成静止,则相当于第二个每次走一步,所以在那个环上时,是一定能相遇的。如何找到这个链... 阅读全文
posted @ 2014-12-12 10:43 智者无惧 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 对于不同的字符串,判断其相似程度。可以修改一个字符,增加一个字符,删除一个字符等操作。分析:当两个字符串第一个字符相等时,直接把两个字符串跳到第二个位置开始比较就可以了。当两个字符串第一个字符不相等时,不管怎么操作总是,要么第一个串跳到第二个位置,第二个串位置不变;或者第一个串位置不变,第二个跳到第... 阅读全文
posted @ 2014-12-09 20:07 智者无惧 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目:设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为o(N),且只允许使用两个附加变量。若k>n,可用k%n 把前N-K位逆序,把后K位逆序,最后把整个数组逆序,就是答案 阅读全文
posted @ 2014-12-05 11:57 智者无惧 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中最长递增子序列的长度。解法一:用动态规划,找出以当前元素结尾的最大递增子序列长度。dp[i+1] = max{1, dp[i]+1} ,array[i+1]>array[k] ,k<=i; 复杂度为o(n*n + n).解法二:另外开一个数... 阅读全文
posted @ 2014-12-05 11:19 智者无惧 阅读(522) 评论(0) 推荐(0) 编辑
摘要: 问题:给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组,并写出算法的时间复杂度。解法一:用一个数组保存从左边到右边前i个元素的乘积。用另一个数组保存从右边到左边N-i个元素的乘积。然后结果就为两个数组中元素对应的乘积,复杂度为o(N)。解法二:设N个... 阅读全文
posted @ 2014-11-27 20:48 智者无惧 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢?解法:最简单的是扫描一遍数组,需要比较2*N次才能求解。解法二:首先在概念上把连个相邻的数分在同一组,只是想象而已,无须任何操作。然后比较同一组的奇数位数字和偶数位数字,将较大的数放在偶数位上,较小的数放在奇数位上。N/2次比... 阅读全文
posted @ 2014-11-18 22:56 智者无惧 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0.解法:原问题转化为求一个最小的正整数X,使得X的十进制表示形式里只含有1和0,并且X被N整除。于是乎就成了遍历二进制整数一样遍历X的各个取值,但是如果X的最终结果又K位,则要循环搜索2K次。因此,可... 阅读全文
posted @ 2014-11-17 22:46 智者无惧 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 求两个很大的数的最大公约数问题。解法一:辗转相除法,但当数很大时,取模运算很耗时间。解法二:利用f(x,y) = f(x-y, y)可以避免取模,但是当第一个数很大,而第二个数很小如1时,也比较耗时。解法三:对于y和x来说,如果y=k*y1, x= k*x1,那么f(y,x)=k*f(y1,x1)。... 阅读全文
posted @ 2014-11-16 22:15 智者无惧 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 问题:1,写一个函数f(N),返回1到N之间出现的”1"的个数。2,满足条件“f(N)=N"的最大的N是多少?解法:对于之间的每一个数字n,分情况讨论每一个数位出现1的个数,例如要计算百位上出现1的次数,它将会受到三个因素的影响:百位上的数字,百位以下(低位)的数字,百位(更高位)以上的数字。如果百... 阅读全文
posted @ 2014-11-10 21:58 智者无惧 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题意:在一堆ID号中,有一个ID出现的次数大于总数的一半,如何快速找出那个ID。我自己的想法是,如果ID号不是很大,用hash来存储每一个ID号出现的次数,出现一次,hash[ID]++,然后和max值比较,若大,则更新max值,复杂度为o(n)。书上一个好的解法是:每次删除两个不同的ID(不管是否... 阅读全文
posted @ 2014-11-09 22:36 智者无惧 阅读(103) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 下一页