摘要: 动态规划:通过不停的缩小问题规模最终找到解。几乎都是求极限值。有以下几个特征: ①规模n问题和规模为n-1的问题,两个最优解可能相同也可能只差第n个元素,换句话说就是第n个元素是否属于最优解。如果不属于最优解那么规模为n的问题就可以换算为规模n-1的问题;如果属于最优解,那么规模为n的问题就可以换算 阅读全文
posted @ 2019-10-23 14:12 Dahouzi 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 分治法:将问题分割,从一个大块分解为一个个小块,将问题规模变小。先解决小问题,在不停的整合结果集。 (1)合并排序 思路:把数组(假如长度为8)中每一个元素分为一个数组(因为这个数组只有一个元素,所以可以看成是有序数组)。然后不停的把两个有序组数组成一个有序数组(两个数组谁的第一个小就array_s 阅读全文
posted @ 2019-10-22 20:13 Dahouzi 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 贪心算法:保证每一步都是最优,最终结果肯定是最优的(简化了很多问题,不需要你有大局观) 场景:求集合的极限值(最多,最短,最便宜等等等...) (1)会议安排 说明:在有限的时间内召开更多的会议,任何两个会议不能有时间冲突。下图是会议详情: 思路:下一个会议要取结束时间最早的(更优的会议持续时间最短 阅读全文
posted @ 2019-10-18 18:28 Dahouzi 阅读(190) 评论(0) 推荐(0) 编辑
摘要: (1)接雨水问题 说明:如下图,每个元素表示柱子的高度,黑色的为柱子,灰色的为接到的雨水。给定一个数组之后,求可接的雨水是多少。 代码: 1 <?php 2 $arr = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]; 3 echo rainVolume($arr); 4 阅读全文
posted @ 2019-10-15 15:49 Dahouzi 阅读(358) 评论(0) 推荐(0) 编辑