分析:从最小面一层开始往上计算,设dp[i][j]是以第i层j个元素为起点的最小路径和,动态规划方程如下dp[i][j]
= value[i][j] + max{dp[i-1][j],
dp[i-1][j+1]}因为每一层之和它下一层的值有关,因此只需要一个一位数组保存下层的值,public int...
分类:
其他好文 时间:
2014-05-24 05:56:35
阅读次数:
294
Detect Cycle in a Directed Graph
判断一个图是否有环,有环图如下:
这里唯一注意的就是,这是个有向图, 边组成一个环,不一定成环,因为方向可以不一致。
这里就是增加一个数组保存当前已经访问过的路径信息 recStack[];
而visited[]数组是访问过的点的信息,两者作用是不一样的。
助理这个知识点,这道题就很容易了。
原文:
h...
分类:
其他好文 时间:
2014-05-21 15:07:14
阅读次数:
269
前面提到过很多次大整数的问题,这个是真正的大整数。
我用了一个很蠢得方法,先写一个大整数和一个个位数相乘的方法,返回的结果是一个string,然后写一个string相加的方法,每次循环,用其中一个数的每一位去乘另一个数,然后加到结果上。。
多么愚蠢的思路,居然还一遍过了。。一个更好的方法是先用两个int数组把两个string存一下,每位占数组中的一个数,然后再用一个int数组保存结果,每次也是...
分类:
其他好文 时间:
2014-05-15 14:55:51
阅读次数:
322
八皇后问题应该是回溯法的教学典范。在本科的时候,有一门课叫面向对象,最后的附录有这个问题的源代码,当时根本不懂编程,照抄下来,运行一下出了结果都很开心,哎。
皇后们的限制条件是不能同行同列,也不能同对角线。那么显然每一列上都要有一个皇后,只需要用一个一维数组记录皇后在每一行上的位置就可以了。算法的思想是:从第一行开始,尝试把皇后放到某一列上,可以用一个vis数组保存已经有皇后的列,当找到一个还没...
分类:
其他好文 时间:
2014-05-15 05:02:41
阅读次数:
261
二进制相加,本质上就是大整数加法,有关大整数加法我的舍友教过我一个很好的方法,先用一个int数组保存结果,将两个数对应位置相加,全部加完后,再统一处理进位的问题。这个方法同样适用于大整数的乘法。
这个题没什么特别的,注意一下进位别搞错了就行了,还有其实不用像我写的这么麻烦,可以一开始先判断哪个更长一些,交换一下。代码会简洁很多。class Solution {
public:
strin...
分类:
其他好文 时间:
2014-05-13 08:02:00
阅读次数:
239
转载:http://blog.csdn.net/fightforyourdream/article/details/14503469题目:最佳时间买入卖出股票:你有一个数组保存了股票在第i天的价钱,现在你最多进行两次买卖,但同一时间你手上只能保持一个股票,如何赚的最多思路:知道要用DP做,但是一开始...
分类:
其他好文 时间:
2014-05-09 20:01:47
阅读次数:
335
对公司所有员工的年龄进行排序,公司总共有几万名员工,要求时间复杂度为O(n)。
很明显的计数排序题目,员工的年龄肯定在一个范围之内,我们这里假设在0-99之内,算很大了,这样就可以开辟一个长度为100的数组,保存各个年龄的员工的个数。...
分类:
其他好文 时间:
2014-05-07 15:35:12
阅读次数:
286