LeetCode如何删除排序数组中的重复项
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章主要介绍了LeetCode如何删除排序数组中的重复项,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题意给定一个排序数组,你需要
千家信息网最后更新 2025年02月05日LeetCode如何删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
数组完成排序后,我们可以放置两个指针 i 和 j,其中 i 是慢指针,而 j是快指针。只要 nums[i] = nums[j] ,我们就增加 j 以跳过重复项。 当我们遇到 nums[j] ≠nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j])的值复制到 nums[i + 1]。然后递增 i,接着我们将再次重复相同的过程,直到 j 到达数组的末尾为止。 时间复杂度:O(n),假设数组的长度是 n,那么 i 和 j 分别最多遍历 n 步。 空间复杂度:O(1)。
这篇文章主要介绍了LeetCode如何删除排序数组中的重复项,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
题意
样例
示例 1:
给定数组 nums = [1,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。
你不需要考虑数组中超出新长度后面的元素。
题解
public int removeDuplicates(int[] nums) {
if (nums.length == 0) return 0;
int i = 0;
for (int j = 1; j < nums.length; j++) {
if (nums[j] != nums[i]) {
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
感谢你能够认真阅读完这篇文章,希望小编分享的"LeetCode如何删除排序数组中的重复项"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数组
元素
长度
排序
篇文章
指针
空间
复杂
两个
函数
原地
复杂度
示例
中超
相同
价值
兴趣
再次
同时
时间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
突破网络安全瓶颈
武汉优美网络技术怎么样
南阳软件开发招聘
网络技术总监工作日常
数据库图标是啥样测
机房服务器的作用
直销人软件开发
数据库查询多数据语句
软件开发定制台州
服务器怎么安装wps系统
我的世界服务器放置npc
plsql链接数据库
落实实施网络安全法
网络安全拼多多
江阴互联网科技有限公司
自备安全认证服务器
数据库教师授课门数
cache数据库培训
贵阳品牌服务器总代理
ibm服务器无法开机怎么办
开源数据库的核心是什么
nature数据库网址
苹果软件开发用什么电脑
大话西游手游小米渠道服务器查询
学生版网络安全手抄报图片
acc数据库怎么注册时间
嘉兴软件开发有限公司
上海苹果软件开发一般要多少钱
酷通加速服务器华为
华为跟腾讯哪家网络技术厉害