题目描述:给定一个单向的链表,要求以相等的概率返回要求:时间复杂度o(n),空间复杂度o(1)原文描述:Given a singly linked list, return a random node’s value from the linked list. Each node must have the same probability of being chosen.Follow up:Wha...
分类:
其他好文 时间:
2016-08-18 01:15:46
阅读次数:
292
遇到个好玩的问题,就是用一个stack实现min stack,什么意思呢,就是我实现stack,但是能以O(1)的时间复杂度和空间复杂度去找到我stack里面的最小值。 常规的方法是:用一个变量存放当前最小值,但是会出现这种情况,就是当我的stack pop掉的值刚好是最小值时候,后面就没法知道当前 ...
分类:
其他好文 时间:
2016-08-17 22:44:15
阅读次数:
186
算法的时间复杂度和空间复杂度合称为算法的复杂度。 1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执 ...
分类:
编程语言 时间:
2016-08-17 06:44:02
阅读次数:
203
题目:给定一个数组arr,该数组无序,但每个值均为正数,再给定一个正数k。求arr得所有子数组中所有元素相加和为k的最长子数组长度。 解答:最优解可以做到时间复杂度为o(n),额外空间复杂度为o(1).首先用两个位置来标记子数组的左右两头,记为left和right,开始时都在数组的最左边(left= ...
分类:
编程语言 时间:
2016-08-14 23:47:39
阅读次数:
391
题目:给定一个N*N的矩阵matrix,求把这个矩阵调整成顺时针转动90度后的形式。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 顺时针转动90度后为: 13 9 5 1 14 10 6 2 15 11 7 3 16 12 8 4 要求:额外空间复杂度为O( ...
分类:
其他好文 时间:
2016-08-14 17:50:57
阅读次数:
180
1.给定一个整形矩阵matrix,请按照转圈的方式打印它。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为: 1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 要求额外空间复杂度为:O(1) 解答: 本题主要介绍一种矩阵处 ...
分类:
编程语言 时间:
2016-08-14 16:22:24
阅读次数:
551
一个整形数是否是回文 also leetcode 9 Palindrome Number要求空间复杂度O(1)按位判断一般是/和%的游戏,首先取首位 a/h (h是最接近a的10的次方,比如12321,h预计算出是10000), 再取末位a%10; 比较首位和末位是否相等,不等就返回false; 如... ...
分类:
其他好文 时间:
2016-08-13 22:44:28
阅读次数:
520
* 统计数组中每个元素出现的次数 * 数组长度为N,每个元素范围为[1,N]。 * 统计各个元素出现的次数,要求时间复杂度为O(N),空间复杂度为O(1)。可以修改数组中元素的值。 * * 思路:遍历到每一个元素,将该(元素值 - 1)作为下标值,将该下标的元素赋值(若为正,赋值-1;若为负值,-1 ...
分类:
编程语言 时间:
2016-08-13 22:35:11
阅读次数:
292
最近公司在做一个项目,需要对爬取到的数据进行去重,方法就是根据数据的id,去除掉id重复的数据。 下面是这个方法的演化过程。 从上面的算法中可以看到,上面的算法用了两个数组,两个循环,所以它的时间复杂度为O(n^2),空间复杂度为O(2n)。上面的算法,我们可以从in_array()入手,考虑下面的 ...
分类:
编程语言 时间:
2016-08-13 22:30:15
阅读次数:
186
题目:Sort a linked list in O(n log n) time using constant space complexity. 分析:给单链表排序,要求时间复杂度是O(nlogn),空间复杂度是O(1)。时间复杂度为O(nlogn)的排序算法有快速排序和归并排序, 但是,对于单链 ...
分类:
编程语言 时间:
2016-08-13 21:01:28
阅读次数:
163