贪心算法
来源:互联网 发布:软件架构怎么做 编辑:程序博客网 时间:2024/06/06 09:16
贪心算法
贪心选择性质
在求解一个最优化的问题中,我们使用贪心的方式选择了一组内容后不会影响剩余子问题的求解。
如果无法使用贪心算法,举出反例即可。
如果无法举出反例,如何证明贪心算法的正确性?
1.数学归纳法 有一个变量n在一直变化
2.反证法,是否存在最优解。
leetcode435
题目地址:https://leetcode.com/problems/non-overlapping-intervals/description/
动态规划
import org.junit.Test;import java.util.Arrays;import java.util.Comparator;public class Main { public class Interval { int start; int end; Interval() { start = 0; end = 0; } Interval(int s, int e) { start = s; end = e; } } public int eraseOverlapIntervals(Interval[] intervals) { if (intervals==null||intervals.length==0) return 0; int length=intervals.length; //排序 Arrays.sort(intervals, new Comparator<Interval>() { @Override public int compare(Interval o1, Interval o2) { //比较要怎么比较,有疑问,是用例有问题吗 return o1.start-o2.start; } }); int dp[] = new int[length]; //置数 Arrays.fill(dp,1); int max=1; //类似最长递增子序列 for (int i = 1; i < length; i++) { for (int j=0;j<i;j++) if (intervals[i].start>=intervals[j].end) dp[i]=Math.max(dp[i],dp[j]+1); if (dp[i]>max) max=dp[i]; } //找出最大值 return length-max; } @Test public void main(){ System.out.println(eraseOverlapIntervals(new Interval[]{new Interval(1,2),new Interval(2,3)})); }}
贪心法
import org.junit.Test;import java.util.Arrays;import java.util.Comparator;public class Main { public class Interval { int start; int end; Interval() { start = 0; end = 0; } Interval(int s, int e) { start = s; end = e; } } public int eraseOverlapIntervals(Interval[] intervals) { if (intervals==null||intervals.length==0) return 0; int length=intervals.length; Arrays.sort(intervals, new Comparator<Interval>() { @Override public int compare(Interval o1, Interval o2) { return o1.end-o2.end; } }); int max=1; //记录刚开始的坐标 int pre=0; for (int i = 1; i < length; i++) { if (intervals[i].start>=intervals[pre].end){ max++; pre=i; } } //找出最大值 return length-max; } @Test public void main() { System.out.println(eraseOverlapIntervals(new Interval[]{ new Interval(-100,-87),new Interval(-99,-44),new Interval(-98,-19),new Interval(-97,-33),new Interval(-96,-60),new Interval(-95,-17),new Interval(-94,-44),new Interval(-93,-9),new Interval(-92,-63),new Interval(-91,-76),new Interval(-90,-44),new Interval(-89,-18),new Interval(-88,10),new Interval(-87,-39),new Interval(-86,7),new Interval(-85,-76),new Interval(-84,-51),new Interval(-83,-48),new Interval(-82,-36),new Interval(-81,-63),new Interval(-80,-71),new Interval(-79,-4),new Interval(-78,-63),new Interval(-77,-14),new Interval(-76,-10),new Interval(-75,-36),new Interval(-74,31),new Interval(-73,11),new Interval(-72,-50),new Interval(-71,-30),new Interval(-70,33),new Interval(-69,-37),new Interval(-68,-50),new Interval(-67,6),new Interval(-66,-50),new Interval(-65,-26),new Interval(-64,21),new Interval(-63,-8),new Interval(-62,23),new Interval(-61,-34),new Interval(-60,13),new Interval(-59,19),new Interval(-58,41),new Interval(-57,-15),new Interval(-56,35),new Interval(-55,-4),new Interval(-54,-20),new Interval(-53,44),new Interval(-52,48),new Interval(-51,12),new Interval(-50,-43),new Interval(-49,10),new Interval(-48,-34),new Interval(-47,3),new Interval(-46,28),new Interval(-45,51),new Interval(-44,-14),new Interval(-43,59),new Interval(-42,-6),new Interval(-41,-32),new Interval(-40,-12),new Interval(-39,33),new Interval(-38,17),new Interval(-37,-7),new Interval(-36,-29),new Interval(-35,24),new Interval(-34,49),new Interval(-33,-19),new Interval(-32,2),new Interval(-31,8),new Interval(-30,74),new Interval(-29,58),new Interval(-28,13),new Interval(-27,-8),new Interval(-26,45),new Interval(-25,-5),new Interval(-24,45),new Interval(-23,19),new Interval(-22,9),new Interval(-21,54),new Interval(-20,1),new Interval(-19,81),new Interval(-18,17),new Interval(-17,-10),new Interval(-16,7),new Interval(-15,86),new Interval(-14,-3),new Interval(-13,-3),new Interval(-12,45),new Interval(-11,93),new Interval(-10,84),new Interval(-9,20),new Interval(-8,3),new Interval(-7,81),new Interval(-6,52),new Interval(-5,67),new Interval(-4,18),new Interval(-3,40),new Interval(-2,42),new Interval(-1,49),new Interval(0,7),new Interval(1,104),new Interval(2,79),new Interval(3,37),new Interval(4,47),new Interval(5,69),new Interval(6,89),new Interval(7,110),new Interval(8,108),new Interval(9,19),new Interval(10,25),new Interval(11,48),new Interval(12,63),new Interval(13,94),new Interval(14,55),new Interval(15,119),new Interval(16,64),new Interval(17,122),new Interval(18,92),new Interval(19,37),new Interval(20,86),new Interval(21,84),new Interval(22,122),new Interval(23,37),new Interval(24,125),new Interval(25,99),new Interval(26,45),new Interval(27,63),new Interval(28,40),new Interval(29,97),new Interval(30,78),new Interval(31,102),new Interval(32,120),new Interval(33,91),new Interval(34,107),new Interval(35,62),new Interval(36,137),new Interval(37,55),new Interval(38,115),new Interval(39,46),new Interval(40,136),new Interval(41,78),new Interval(42,86),new Interval(43,106),new Interval(44,66),new Interval(45,141),new Interval(46,92),new Interval(47,132),new Interval(48,89),new Interval(49,61),new Interval(50,128),new Interval(51,155),new Interval(52,153),new Interval(53,78),new Interval(54,114),new Interval(55,84),new Interval(56,151),new Interval(57,123),new Interval(58,69),new Interval(59,91),new Interval(60,89),new Interval(61,73),new Interval(62,81),new Interval(63,139),new Interval(64,108),new Interval(65,165),new Interval(66,92),new Interval(67,117),new Interval(68,140),new Interval(69,109),new Interval(70,102),new Interval(71,171),new Interval(72,141),new Interval(73,117),new Interval(74,124),new Interval(75,171),new Interval(76,132),new Interval(77,142),new Interval(78,107),new Interval(79,132),new Interval(80,171),new Interval(81,104),new Interval(82,160),new Interval(83,128),new Interval(84,137),new Interval(85,176),new Interval(86,188),new Interval(87,178),new Interval(88,117),new Interval(89,115),new Interval(90,140),new Interval(91,165),new Interval(92,133),new Interval(93,114) ,new Interval(94,125),new Interval(95,135),new Interval(96,144),new Interval(97,114), new Interval(98,183),new Interval(99,157)})); } }
阅读全文
0 0
- 【贪心】贪心算法总结
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- 贪心算法
- javaweb学习总结(五)Spring AOP实现日志管理
- UVA-136 Set
- 【Python爬虫】了解网站信息
- Java之Pattern和Matcher用法
- 如何在Vue Project中使用vue-apollo
- 贪心算法
- 2017年首份中美数据科学对比报告,Python受欢迎度排名第一,美国数据工作者年薪中位数高达11万美金
- translate3d(x,y,z)在页面布局中的使用
- Hibernate5配置及实现简单增删改查
- MapReduce 缓存文件
- Matting
- Android popupwindow动画的使用
- 数字图像处理笔记
- vue环境安装