题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 利用递归: 找到2个链表中,最小的头结点,合并后的链表头结点就是最小的头结点。 合并链表指向剩余部分。 1 public class Solution { 2 public ListNode Me ...
分类:
编程语言 时间:
2017-11-16 11:41:52
阅读次数:
123
题目大意:给你n个数,求出每个数前m位的最小值 题解:单调队列,用一个可以双向弹出的队列来存一串数,满足里面的数具有单调性,我们可以假设它是单调递增的,即求最小的数。那么可以把要插入的这个数与队尾元素比较,如果队尾的数大,那么插入它就不满足单调性了,那么我们就从队尾删除元素,直到比队尾元素大。这样就 ...
分类:
其他好文 时间:
2017-11-09 22:50:41
阅读次数:
372
A-HDU1087 http://acm.hdu.edu.cn/showproblem.php?pid=1087 相当于从数组a中找一个最优序列,我们设要找的序列为A,序列A满足两个条件,一是A中的元素大小满足单调递增,二是A中所有元素的和最大,输出这个最大值。 令f[i]表示以第i个元素结尾的A序 ...
分类:
其他好文 时间:
2017-11-05 13:51:17
阅读次数:
182
Incr incr ##【题目描述】: 数列 A1,A2,...,AN,修改最少的数字,使得数列严格单调递增。 ##【输入描述】: 第 1 行,1 个整数 N 第 2 行,N 个整数 A1,A2,...,AN ##【输出描述】: 1 个整数,表示最少修改的数字 ##【样例输入】: 3 1 3 2 # ...
分类:
其他好文 时间:
2017-10-18 23:14:03
阅读次数:
292
题意:给定一个序列,求所有滑动窗口内的最值。 解题关键:单调队列裸题,单调递增队列选取最小值,单调递减队列选取最大值。 注意用c++提交,否则会超时。 ...
http://poj.org/problem?id=2823 题意:给出数组和滑动窗口的大小,每次输出滑动窗口中的最大值和最小值。 思路:这题可以算是单调队列的模板题了,分别维护单调递增和单调递减的队列,队尾在每次插入时维护即可,队首的维护是当队首元素不在滑动窗口范围内时就舍去。 ...
一、题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析合并两个链表的过程。我们的分析从合并两个链表的头结点开始。链表1的头结点的值小于链表2的头结点的值, ...
分类:
编程语言 时间:
2017-10-01 23:03:24
阅读次数:
281
题目大意: 有一个矩阵 有些点可以取有些不能 求以每个点为右下角的子矩阵(里面点都可以取)的周长最大值 最后统计出每个周长对应矩阵的个数 思路: 单调栈 先预处理出每个点向上最多能延伸多长记为h(i,j) 然后对于每行维护一个单调栈记录每行最远可以达到的左端点和该矩形的高 该单调栈满足高单调递增 每 ...
分类:
其他好文 时间:
2017-10-01 13:40:31
阅读次数:
194
K上升段 问题描述:对于n的一个全排列,如果它可以划分成k个单调递增序列,每个序列都尽可能最长,则称其为k上升段。例如:排列1 2 4 5 6 3 9 10 7 8是一个合法的3上升段,它可以划分成1 2 4 5 6;3 9 10;7 8这三个单调递增序列。对每个给定的(n,k),请你给出n的所有k ...
分类:
其他好文 时间:
2017-09-23 17:16:15
阅读次数:
122
自开始学习算法起,我感觉就是跪着把《算法导论》的代码看一遍、理解一遍然后敲一遍...说实话自己来写并且要求时间复杂度达到要求,我肯定是不能做到的,但我想前辈们辛苦积累的研究成果贡献出来也是为了让后人少走一些弯路,所以我的作用就是把前辈们的成果学习之后加以理解,然后积累经验,领悟到他们解决问题时的思路 ...
分类:
其他好文 时间:
2017-09-18 22:22:30
阅读次数:
333