笔试时没做出来, 事后想了下用单调栈是可以做的 简要解释下题目, 给定一个长度n的数组, 分别有1到n长度的连续子序列, 每个子序列对应其包含最大值, 求每个长度的对应值中的最小值.例如54 2 3 5 7对应值最小时分别取[2], [2,3], [4,2,3], [4,2,3,5], [4,2,3,5,7]结果为2 3 4 5 7其中 n <= 100000最容易想到的是简单的动态规划, n2会暴栈, 所以只用一阶矩阵v[n]为输入数组dp[i]表示当前位置下前i个位置中的最大值,从后往前更新, 那么转移式为 dp[i] = max(dp[i - 1], v[i]), 即前i-1个位置...