思路:
暴力解法,将第一个链表的所有结点放进HashSet,然后看第二个链表从头开始的第一个存在HashSet中的元素就是两个链表相交的地方。
方法不够好,题目说的空间复杂度最好为O(1)...
分类:
其他好文 时间:
2015-02-07 17:32:48
阅读次数:
230
字典树(trie树) 字典树是一种在字符串查找,前缀匹配等方面应用广泛的算法,它在查找字符串时只与被查询的字符串长度有关,所以它在查找时只有O(1)的时间复杂度,但随之而来的较大的空间复杂度。一.原理分析 如图,字典树的每一个节点是由一个数据域(用来标记是否在此处有字符串终止)与26个指针域(表.....
分类:
其他好文 时间:
2015-02-07 13:06:10
阅读次数:
185
.//有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N)
/**
????*?分数组
????*/
???public?static?void?awaylist(){
??????int?a[]?=?n...
分类:
移动开发 时间:
2015-02-06 15:20:07
阅读次数:
225
那传说中的P、NP以及NPC问题 (这里只是自己的一些总结) 在讲这几个问题之前,有几个东西是必须要说的,包括时间复杂度、空间复杂度、图灵机什么的。那么我们就慢慢来一一说来。 图灵机:图灵机其实就是一个计算模型,是由图灵提出来的。图灵机号称可以模拟实际计算机的所有计算行为,计算能力还超过现有的计.....
分类:
其他好文 时间:
2015-02-04 18:34:33
阅读次数:
147
下面是常见排序算法的速度比较:(从慢到快)
1、冒泡排序O(N^2)
2、简单选择排序O(N^2)
3、直接插入排序O(N^2)
4、折半插入排序O(N^2)
5、希尔排序,近似为O(N^1.25) (尚无定论,但可以确定是N~N^2之间的多项式时间复杂度)
6、堆排序O(NlogN)
7、归并排序O(NlogN)
8、快速排序O(NlogN)
一般来说是快排最快的。但是...
分类:
编程语言 时间:
2015-01-29 09:34:09
阅读次数:
274
题目:Sort a linked list in O(n log n)
time using constant space complexity.
思路:题目要求我们使用常数空间复杂度,时间复杂度为O(nlog(n)). 满足这个时间复杂度的有快速排序,归并排序,堆排序。插入排序时间复杂度为O(n^2). 双向链表用快排比较合适,堆排序也可用于链表,单项链表适合于归并排序。我们就用归并排序的...
分类:
编程语言 时间:
2015-01-27 11:13:51
阅读次数:
190
题目:两个数组A、B,长度分别为m、n,即A(m)、B(n),分别是递增数组。求第K大的数字。方法一:简单的办法,使用Merge Sort,首先将两个数组合并,然后在枚举查找。这个算法的时间复杂度是O(m+n)、空间复杂度也是O(M+n)。这个方法其实没有考虑到有第K大数为两个相同数字的情况。方法二...
分类:
编程语言 时间:
2015-01-26 22:25:57
阅读次数:
295
一. 问答题
1. 大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串。比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个回文数?这么简单的题目对想要成为小米工程师的你来说肯定不是问题。不过提醒一下哦:时间复杂度和空间复杂度越低的算法,得分越高。
C++:
bool isPalindromeNumber(long num)...
分类:
移动开发 时间:
2015-01-26 12:04:08
阅读次数:
157
原题地址非常有技巧的一道题,如果没有接触过类似题目或没有任何提示的情况下想出来很困难,因为题目要求O(1)的空间复杂度既然是O(1)的空间复杂度,自然要用到原数组了。解法是:1. 遍历每个数组元素,把元素都交换到正确的位置上。比如发现A[3] = 5,则交换A[5]和A[3],让A[5]=5。2. ...
分类:
其他好文 时间:
2015-01-24 17:07:38
阅读次数:
115
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。解法:位异或运算思路:将问题简化为除了一个数字外,其他数字都出现两次。将数组的结果异或起来,因为出现两次的数组异或结果为0,所以结果异或的结果即为出现一次...
分类:
编程语言 时间:
2015-01-23 16:19:05
阅读次数:
129