回溯算法:回溯算法实际上是一个类似枚举的搜索尝试方法,它的思想是在搜索尝试中寻找问题的解,当发现不满足求解条件时,就“回溯”返回,尝试别的路径。之前介绍的基础算法中的贪婪算法,动态规划等都具有“无后效性”,也就是在分段处理问题时,某状态一旦确定,将不再改变。而多数问题很难找到"无后效性”的阶段划分和...
分类:
其他好文 时间:
2014-10-09 23:22:31
阅读次数:
248
题目链接地址:http://soj.me/1176题目大意:两头取数。第一个人随机取,第二个人用贪婪算法(每次都取大的),求两人取数在第一个人赢的情况下的最大分差。使用贪婪算法时,如果左右两边相等,取左边的。核心算法:动态规划。 设数组arr[a][b]是在数列区间[a,b]上的最大分差。 递推公式...
分类:
其他好文 时间:
2014-10-09 14:57:33
阅读次数:
159
一、概念:与贪婪法一样,这种方法也是用来为组合优化问题设计求解算法的,所不同的是它在问题的整个可能解空间搜索,所设计出来的算法虽然时间复杂度比贪婪算法高,但它的优点是与穷举法类似,都能保证求出问题的最佳解,而且这种方法不是盲目的穷举搜索,而是在搜索中通过界限,可以中途停止对某些不可能得到的最优解.....
分类:
其他好文 时间:
2014-08-18 14:28:42
阅读次数:
247
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximu...
分类:
其他好文 时间:
2014-08-13 00:28:34
阅读次数:
324
贪心算法 贪心算法,也称贪婪算法的基本思想是逐步获取最优解。 贪心算法在求解最优化问题时,从初始阶段开始,每一个阶段总是做一个使局部最优的贪心选择,不断将问题转化为规模更小的子问题。 也就是说,贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义...
分类:
其他好文 时间:
2014-08-10 15:40:40
阅读次数:
189
Dijkstra算法解决了有向图G=(V,E)上带权的单源最短路径问题,但要求所有边的权值非负。Dijkstra算法是贪婪算法的一个很好的例子。设置一顶点集合S,从源点s到集合中的顶点的最终最短路径的权值均已确定。算法反复选择具有最短路径估计的顶点u,并将u加入到S中,对u的所有出边进行松弛。如果可...
分类:
其他好文 时间:
2014-07-16 20:34:45
阅读次数:
261
在博文:http://blog.csdn.net/qiwsir/article/details/31375449 中,讲述了如何用贪婪算法解决找硬币的问题,同时也指出了该方法存在的问题。
如何解决?
下面就是一个解决方案,在这里采用的是动态算法。
def coinChange(centsNeeded, coinValues):
minCoins = [[0 for j in ra...
分类:
其他好文 时间:
2014-07-08 15:27:17
阅读次数:
213
为了简化问题,我们需要作出一些假设。假设图中每条边的权重都是不一样的,假设整个图是连通的。这样假设的目的就是让最小生成树的计算结果是唯一的。
图的切割
介绍算法之前,需要先了解图的切割。图的切割就是将顶点分割成两部分,切到的边称之为交叉边。下图红色的先就是交叉边。
在最小生成树中,无论如何切割,最小生成树总是从交叉边中选择最小的...
分类:
其他好文 时间:
2014-06-21 23:51:30
阅读次数:
316
兑换硬币问题,是贪婪算法的经典问题,本文不仅用python演示了这个算法,更指出此算法存在的问题,即不一定得到的结果都是最优解。...
分类:
其他好文 时间:
2014-06-18 11:23:08
阅读次数:
222
前言
学无止境。算法博大精深啊,一个贪心算法里面就隐含了这么多不同的场景实现,每个场景下的算法就有多种不同的实现,个人写法不一也成就了各种不同的漂亮算法,看了这些实现,也让我开拓了思维,这个世界的方案永远没有最完美的只有最合适的~ !
1、贪心算法概念
贪心算法也叫贪婪算法,当然叫法随意。主要目的是在问题求解时,做出最正确的判断= =,这不是贪心是啥?在计算机工程领域当中,就是说不考虑整体最优算法而是从局部做到最优解。当然贪心是算法不能对所有的问题都能得到整体都最...
分类:
编程语言 时间:
2014-05-07 03:32:27
阅读次数:
859