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

算法26. 删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

示例 1:

输入:nums = [1,1,2]
输出:2, nums = [1,2,_]
解释:函数应该返回新的长度2,并且原数组 nums 的前两个元素被修改为1, 2。不需要考虑数组中超出新长度后面的元素。

示例 2:

输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5,并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。不需要考虑数组中超出新长度后面的元素。
class Solution:def removeDuplicates(self, nums: List[int]) -> int:# 快慢指针法if nums is None:return 0slow=0for fast in range(1,len(nums)):if nums[slow] != nums[fast]:slow+=1# 在原地修改数组时,不用担心会把还没执行的数据覆盖掉,因为fast始终比slow快nums[slow]=nums[fast]return slow+1

http://www.dtcms.com/a/309260.html

相关文章:

  • 宝塔网站如何禁止使用IP访问
  • Shell脚本批量检测IP的443端口联通性
  • ai项目多智能体
  • 【从0开始学习Java | 第11篇】String、StringBuilder与StringBuffer
  • 微信小程序转Vue2组件智能提示词
  • 隧道安全监测哪种方式好?精选方案与自动化监测来对比!
  • 11.Layout-Pinia优化重复请求
  • C++赋值运算符重载
  • PHP Zip 文件操作详解
  • 汽车供应链PPAP自动化审核指南:如何用AI实现规则精准匹配与文件智能校验
  • MyBatis核心
  • MySQL——视图
  • C++对象访问有访问权限是不是在ide里有效
  • StarRocks vs. Trino
  • JavaWeb(苍穹外卖)--学习笔记16(定时任务工具Spring Task,Cron表达式)
  • RAGFLOW~Enable RAPTOR
  • 【云计算】云主机的亲和性策略(二):集群节点组
  • [ java 网络 ] TPC与UDP协议
  • 微波(Microwave)与毫米波(Millimeter wave)简介
  • 动态域名解析(DDNS)到底有什么用?
  • OSPF综合大实验
  • 下次接好运~
  • Oracle EBS 缺少adcfgclone.pl文件
  • 一分钟了解IO-Link 系列集线器
  • LaTeX 复杂图形绘制教程:从基础到进阶
  • Deep Height Decoupling for Precise Vision-based 3D Occupancy Prediction
  • 数据结构前篇 - 深入解析数据结构之复杂度
  • Leetcode——53. 最大子数组和
  • 如何将消息转移到新 iPhone
  • 如何将联系人从三星手机转移到 iPhone