当前位置: 首页 > ds >正文

Leetcode 3231. 要删除的递增子序列的最小数量

1.题目基本信息

1.1.题目描述

给定一个整数数组 nums,你可以执行任意次下面的操作:

  • 从数组删除一个 严格递增 的 子序列。

您的任务是找到使数组为 空 所需的 最小 操作数。

1.2.题目地址

https://leetcode.cn/problems/minimum-number-of-increasing-subsequence-to-be-removed/description/

2.解题方法

2.1.解题思路

思路:二分查找

题目转换:等价于求最长非严格递减子序列的长度

2.2.解题步骤

第一步,构建维护变量。arr[i]维护长度为i的最长非严格递减子序列的最后一个元素的最大值;由于后续的arr尾部插入和二分插入的操作可知,arr一定是非严格单调递减的的。

第二步,循环遍历nums,得到nums[i]。如果nums[i]<=arr[-1],将nums[i]添加到arr最后面;否则,将nums[i]插入到arr中,替换第一个小于nums[i]的元素arr[j]

  • 2.1.二分不变量:arr[left-1]>=nums[i]恒成立,arr[right]<nums[i]恒成立;最终的right即为目标索引

第三步,最终的len(arr)-1即为题解

3.解题代码

python代码

# 思路2:动态规划class Solution:def minOperations(self, nums: List[int]) -> int:# 思路:题目转换:等价于求最长非严格递减子序列的长度# 第一步,构建维护变量。arr[i]维护长度为i的最长非严格递减子序列的最后一个元素的最大值;由于后续的arr尾部插入和二分插入的操作可知,arr一定是非严格单调递减的的。arr = [inf]# 第二步,循环遍历nums,得到nums[i]。如果nums[i]<=arr[-1],将nums[i]添加到arr最后面;否则,将nums[i]插入到arr中,替换第一个小于nums[i]的元素arr[j]n = len(nums)for i in range(n):if nums[i] <= arr[-1]:arr.append(nums[i])else:# 2.1.二分不变量:arr[left-1]>=nums[i]恒成立,arr[right]<nums[i]恒成立;最终的right即为目标索引left, right = 1, len(arr)while left < right:mid = left + (right - left) // 2if arr[mid] >= nums[i]:left = mid + 1else:right = midindex = rightarr[index] = nums[i]# 第三步,最终的len(arr)-1即为题解return len(arr) - 1

4.执行结果

http://www.xdnf.cn/news/10437.html

相关文章:

  • Docker-搭建MySQL主从复制与双主双从
  • 解常微分方程组
  • 代码随想录算法训练营第60期第五十三天打卡
  • C57-断言函数assert
  • 【Dv3Admin】工具请求配置文件解析
  • 【PCI】PCI入门介绍(包含部分PCIe讲解)
  • [USACO1.5] 八皇后 Checker Challenge Java
  • 智慧物流园区整体解决方案
  • LeeCode 98. 验证二叉搜索树
  • C#数字金额转中文大写金额:代码解析
  • CppCon 2014 学习:Pragmatic Type Erasure
  • vue-09(使用自定义事件和作用域插槽构建可重用组件)
  • Hbase
  • 如何真正实现软件开发“快”起来:破除误区与落地实践
  • 通义灵码深度实战测评:从零构建智能家居控制中枢,体验AI编程新范式
  • 新版智慧景区信息化系统解决方案
  • JOIN 与子查询的性能对比分析
  • 【shell】通过Shell命令占用内存
  • 【代码坏味道】膨胀类 Bloaters
  • 力扣热题100之翻转二叉树
  • C++哈希表:unordered系列容器详解
  • day15 leetcode-hot100-28(链表7)
  • C++ —— B/类与对象(下)
  • 流媒体基础解析:从压缩到传输的基本了解
  • Linux研学-用户解析
  • Java Spring 之过滤器(Filter)详解与实战
  • Correlations氛围测试:文本或图像的相似度热图
  • 2024年ESWA SCI1区TOP,自适应学习灰狼算法ALGWO+无线传感器网络覆盖优化,深度解析+性能实测
  • DeepSeek 赋能数字孪生城市,筑牢应急管理智慧防线
  • day42 简单CNN