第二题冷静下来才发现题目没读懂(可以无序,且不是子集而是子序列)。维护两个dp,dp_right[i]记录右侧第一个比nums[i]大的下标-1,dp_left[i]记录左侧第一个比nums[i]大的下标+1,那么nums[i]作为子序列中最大的值的序列就是dp_left[i] : dp_right[i] , 那么nums[i]作为最大值的子序列个数有(i - dp_left[i]) * (dp_right[i] - i) + 1 (本身)
点赞 5

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务