一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后...
分类:
编程语言 时间:
2015-04-10 13:18:09
阅读次数:
147
贪心算法也是用来求解最优化问题的,相比较动态规划很多问题使用贪心算法更为简单和高效,但是并不是所有的最优化问题都可以使用贪心算法来解决。贪心算法就是在每个决策点都做出在当时看来最佳的选择。贪心算法的设计步骤:1、将最优化问题转换为:对其做出一次选择之后,只剩下一个问题需要求解的形式(动态规划会留下多...
分类:
编程语言 时间:
2015-04-10 11:04:49
阅读次数:
147
贪心基本题, 有助于理解贪心算法的思想#include #include using namespace std;struct Program{ int begin, end;} programs[100];/** 贪心: 贪心算法的基本步骤 :* 1、从问题的某个初始解出发。* 2、采用循环语句....
分类:
其他好文 时间:
2015-04-09 00:44:00
阅读次数:
141
链接:click here~~
题意:老鼠准备了M磅猫食,准备拿这些猫食跟猫交换自己喜欢的食物。有N个房间,每个房间里面都有食物。你可以得到J[i]单位的食物,但你需要付出F[i]单位的的猫食。 计算M磅猫食可以获得最多食物的重量。
【解题思路】贪心算法,求最优解。将J[i]/F[i]的值从大到小排列,每次取最大的,局部最优,达到全局最优,从而获得最大值。
代码:
// 贪心策略,优...
分类:
其他好文 时间:
2015-04-06 23:18:52
阅读次数:
218
/*
现在有n项工作,知道每一项工作的开始时间和结束时间,问最多可以选择多少工作
算法设计:贪心算法,不断选择不冲突的那些结束时间最短的工作
*/
#include
#include
#define max_n 100001
using namespace std;
int N;
//first is the start of the job,and the secone is...
分类:
编程语言 时间:
2015-04-03 09:27:33
阅读次数:
142
/*
直线上有N个点,点x的位置是xi(距最左端),现在要加上标记
对于每个点,要求是在一个为R的圆的范围内需要一个点被标记
问最少需要标记多少个点
算法设计: 贪心算法设计
从左端第一点开始,距离其最远的不超过R的那个点加上标记,然后将那个
被标记的点当作第一个点,向后找那个距离其最远的不超过R的那个点,然后
加上标记,一直这样做下去直到覆盖...
分类:
其他好文 时间:
2015-04-03 00:22:30
阅读次数:
115
题目:leetcode
Jump Game II
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 maximum jump...
分类:
编程语言 时间:
2015-04-01 17:50:59
阅读次数:
200
贪心法:贪?算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪?心策略的选择,选择的贪?策略必须具备?后效性,即某个状态以后的过程不会影响以前的状态,只...
分类:
编程语言 时间:
2015-03-31 22:11:10
阅读次数:
244
题目:leetcode
Longest Substring Without Repeating Characters
Given
a string, find the length of the longest substring without repeating characters. For example, the longest substring without repea...
分类:
编程语言 时间:
2015-03-29 18:08:07
阅读次数:
152
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789/*Doing Homework againTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O...
分类:
编程语言 时间:
2015-03-29 18:03:41
阅读次数:
214