这个题目的递归解法是容易的,但有大量的重复计算,如果不存在没有解码的子串的话,会是指数级的时间复杂度。然而,我们能够通过记录已经计算过的子问题,来降低重复计算,于是有了改进的版本一。但版本一种需要O(n)的空间复杂度。进一步观察问题,发现递推关系其实比较像斐波那契数列,不同之处在于递推关系中的求和是...
分类:
其他好文 时间:
2014-05-06 01:06:01
阅读次数:
361
自己写的代码考虑未周全,引入了额外的空间复杂度://求数组的子数组之和的最大值#include
#define N 12using namespace std;int main(){ //int a[]={-5,2,3,-3,-2,3,1,-5};
//int a[]={-5,2,0,3...
分类:
其他好文 时间:
2014-05-02 01:59:35
阅读次数:
254
序
算法的复杂性体现在运行该算法时所需的计算机资源多少,而计算机资源最重要的是时间和空间。算法复杂度分为时间复杂度和空间复杂度。
一个高级语言编写的程序在计算机上运行所消耗的时间取决于下列因素: 1、算法采用的策略、方案 2、编译产生的代码质量 3、问题的输入规模 4、机器执行指令的速度
抛开与计算...
分类:
其他好文 时间:
2014-05-01 13:54:35
阅读次数:
377
算法复杂度 分为时间复杂度和空间复杂度。其作用:
时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。 时间复杂度1.时间频度
一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能 知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的....
分类:
其他好文 时间:
2014-05-01 12:15:55
阅读次数:
335
原题地址:http://oj.leetcode.com/problems/sort-list/题意:链表的排序。要求:时间复杂度O(nlogn),空间复杂度O(1)。解题思路:由于题目对时间复杂度和空间复杂度要求比较高,所以查看了各种解法,最好的解法就是归并排序,由于链表在归并操作时并不需要像数组的...
分类:
编程语言 时间:
2014-04-30 15:09:41
阅读次数:
428
2014-04-29
01:02题目:从m个整数里随机选出n个整数,要求等概率。解法:和洗牌的算法类似,每次随机抽出一个数,抽n次即可。时间复杂度O(m *
n),空间复杂度O(m)。代码: 1 // 18.3 pick m integers randomly from an array of n ...
分类:
其他好文 时间:
2014-04-29 14:42:32
阅读次数:
345
Jump GameGiven an array of non-negative
integers, you are initially positioned at the first index of the array.Each
element in the array represents yo...
分类:
其他好文 时间:
2014-04-28 11:30:27
阅读次数:
551