这门课主要讲了贪心、递归、回溯、分支定界、动态规划等几种算法。 在进行学习之前有做过相关题目,所以在听课的时候感觉好理解了许多。没学这门课的时候总是想因为没学ACM课感到惋惜。 1.贪心算法 贪心算法算是DP问题的一个分支了。确定贪心思路,确定贪心标准是其核心。贪心算法的特点在于通过局部最优达到总体 ...
分类:
编程语言 时间:
2017-11-02 21:21:15
阅读次数:
139
122. Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a given stock on day i. Design an algorithm to ...
分类:
编程语言 时间:
2017-10-29 20:18:35
阅读次数:
184
. :匹配任意字符,换行符 \n 除外 :匹配前一个字符0次或无限次 ? :匹配前一个字符0次或1次 .* :贪心算法,尽可能的匹配多的字符 .*? :非贪心算法 () :括号内的数据作为结果返回 2、常用方法 ...
分类:
其他好文 时间:
2017-10-28 18:46:49
阅读次数:
107
问题描述:一辆汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。 算法设计:对于给定的n和k个加油站位置,计算最少加油次数。 数据输入:n:表示汽车加满油后可行驶nkm k:旅途中有k个加油站 k+1个整数:表示第k个加油站与第k-1个加 ...
分类:
编程语言 时间:
2017-10-20 21:48:51
阅读次数:
294
(1)问题描述: 给定x 轴上n 个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。 (2)编程任务: 给定n 个闭区间,编程计算去掉的最少闭区间数。 (3)数据输入: 第一行是正整数n,表示闭区间数。接下来的n行中,每行有2 个整数,分别表示闭区间的2个端点。 (4)结果输出: 计算出的去掉 ...
分类:
编程语言 时间:
2017-10-20 20:23:46
阅读次数:
296
Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法。该算法被称为是“贪心算法”的成功典范。本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码。 一、知识准备 1、表示图的数据结构 用于存储图的数据结构有多种,本算法中笔者使用的是邻接矩阵。 图的邻接矩阵存储 ...
分类:
编程语言 时间:
2017-10-15 15:01:36
阅读次数:
172
题目描述: AC源码: 此题考查贪心算法,解题思路:首先使用快速排序,以w或l按升序排序(注意相等时,应按另一值升序排序),这样就将二维变量比较,变为了一维的,排好序的一边就不需要去管了,只需要对未排序的一边直接进行贪心遍历。时间复杂度O(n^2) ...
分类:
编程语言 时间:
2017-10-07 17:47:42
阅读次数:
212
题目描述: AC源码:此次考察贪心算法,解题思路:贪心的原则是使留下的空间最大,优先选择Bi与Ai差值最大的,至于为什么?这里用只有2个设备为例,(A1,B1)与(A2,B2),假设先搬运A1,搬运的那一瞬间,实际将要占用的空间应该为A1+B2,那么为了保证留下的空间最大,则应该有A1+B2<A2+ ...
分类:
编程语言 时间:
2017-10-07 17:42:31
阅读次数:
115
合并果子加强版....... 哈夫曼树是一种特别的贪心算法,它的作用是使若干个点合并成一棵树,每次合并新建一个节点连接两个合并根并形成一个新的根,使叶子节点的权值乘上其到根的路径长的和最短(等价于每次合并的代价是合并根的权值和,求最小代价)。实现过程就是每次合并权值最小的两个节点,具体一下就是建个森 ...
分类:
其他好文 时间:
2017-10-07 12:18:16
阅读次数:
169
Input示例 Output示例 题意:给出n条一维线段,求不重合的最多线段数。 解析:这个是典型的贪心算法的区间问题。 贪心策略:每次取尽可能短的区间,而且保证相互之间不重合。那么我们将区间的右边界进行升序排序(左边界要从右往左考虑),然后开循环扫描,维护一个右边界,进行判断。以下是我的代码 ...
分类:
其他好文 时间:
2017-10-07 11:51:55
阅读次数:
111