![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程练习题
s651665496
这个作者很懒,什么都没留下…
展开
-
贪心算法学习笔记
贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。不从整体最优上加以考虑,只做出在某种意义上的局部最优解。选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。最优解问题大部分都可以拆分成一个个的子问题,把解空间的遍历视作对子问题树的遍历,则以某种形式对树整个的遍历一遍就可以求出最优解,大部分情况下这是不可行的。贪心算法和动态规划本质上是对子问题树的一种修剪,两种算法要求问题都具有的一个性质就是子问题最优性。动态规划方法代表了这一类问题的一般解法,原创 2020-11-30 14:35:29 · 251 阅读 · 0 评论 -
单调栈题解
1 九阴真经第一式 :单调栈1.1 代表题目:84. 柱状图中最大的矩形单调栈是一种理解起来很容易,但是运用起来并不那么简单的数据结构。一句话解释单调栈,就是一个栈,里面的元素的大小按照他们所在栈内的位置,满足一定的单调性。那么到底什么时候用这个单调栈,怎么用单调栈呢。下面我们来看几个例子。题目是这样的,给一个数组,返回一个大小相同的数组。返回的数组的第i个位置的值应当是,对于原数组中的第i个元素,至少往右走多少步,才能遇到一个比自己大的元素(如果之后没有比自己大的元素,或者已经是最后一个...原创 2020-11-28 21:09:42 · 483 阅读 · 0 评论 -
OJ练习题:K 次串联后最大子数组之和(1191)- kConcatenationMaxSum
typedef struct { int val; int isCombine;}NodeInfor;int kConcatenationMaxSum(int* arr, int arrSize, int k){ NodeInfor * dp = 0; int rtVal = 0; int i; int uintSum = 0; int curMax = 0; int curIndex = 0; long long tmp = ...原创 2020-11-09 20:32:44 · 100 阅读 · 0 评论 -
OJ练习题:数组大小减半(1338)- minSetSize
int CmpInt(const void* a, const void* b){ return *(int*)b - *(int*)a; // 升序排列}typedef struct { int id; int rating;}NodeInfor;int minSetSize(int* arr, int arrSize){ int * cntList = 0; int cntNum = 0; int rtVal = 0; int i...原创 2020-09-10 15:42:14 · 138 阅读 · 0 评论