摘要:
求下一个排列,由于越后面权重越低,所以从后往前找到第一个递增(指从前往后递增)的位置,然后将这一位替换为后面比他大的最小的数,两者交换,然后把后面的部分再排个序。 code 阅读全文
摘要:
经典的一个题,通过观察可以发现,每个高度能接的水就是左右两边分别的最大值的最小值再减去本身高度。 code 阅读全文
摘要:
只能买卖k次,和上一题一样的dp方式,但是 当k大于n的一半时,就相当于无限次交易了 ,这个是没有想到的.... code 阅读全文
摘要:
最多只能交易两次,因此只能用到dp做法,也可以拓展到只能交易n次。 dp[i][j][0/1]表示到第i个物品,第j次交易,买/卖得到的当前收益,第一维可以优化掉。 然后第j次交易买的收益显然就是第j 1次交易卖后的收益再减去当前价格。而卖的收益就是前面算出的买的收益再加上当前价格,注意这里指的是 阅读全文
摘要:
可以无限次买卖,一次买卖其实就对应一段差分的和,无限次买卖就只要把正的差分加起来。 code 阅读全文
摘要:
只能进行一次交易,维护前缀最小值。 code 阅读全文
摘要:
求所有子数组的最小值之和,单调栈处理每个值作为最小值的区间,然后统计。 code 阅读全文
摘要:
二分查找,lower_bound和upper_bound。 code 阅读全文
摘要:
对每一个位置,求右边第一个比它大的数的位置。从后往前扫一遍,维护单调栈。 code 阅读全文
摘要:
字符串的最长严格递增子序列,前后只能相差一个字符。 1. 直接O(N^2)暴力建图,然后记忆化跑个最长路。 2. 直接按字符串长度排序,然后求LIS。 code1 阅读全文