Day68力扣打卡
2023-12-22 21:41:53
打卡记录
得到山形数组的最少删除次数(线性DP + 前后缀分解)
class Solution:
def minimumMountainRemovals(self, nums: List[int]) -> int:
n = len(nums)
pre, suf = [1] * n, [1] * n
for i in range(n):
for j in range(i):
if nums[j] < nums[i]:
pre[i] = max(pre[i], pre[j] + 1)
if nums[n - 1 - i] > nums[n - 1 - j]:
suf[n - 1 - i] = max(suf[n - 1 - i], suf[n - 1 - j] + 1)
return min(n - (pre[i] + suf[i] - 1) for i in range(n) if pre[i] != 1 and suf[i] != 1)
文章来源:https://blog.csdn.net/qq947467490/article/details/135147100
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!