LeetCode如何删除排序数组中的重复项
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了LeetCode如何删除排序数组中的重复项,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。题意给定一个排序数组,你需要
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
科技互联网
亿人帮互联网科技有限公司
小马过河互联网科技
深圳艾佳互联网科技
无锡溥仪互联网科技有限公司
济南和联互联网科技有限公司
哈尔滨新华互联网科技学院
中国科技互联网公司收入
中国的互联网科技企业的崛起
互联网经济与金融科技
互联网科技大赛获奖感言
高科技互联网套路
广东工业互联网大赛深圳学泰科技
富国互联网金融科技混合基金
厦门江牛科技互联网
风投北京互联网科技
福仕德教育科技互联网
互联网领先科技成果宣传视频
每日互联网科技新闻
武汉亿视互联网科技有限公司
与互联网科技公司
奔汉互联网科技
上海万想互联网科技
小米互联网科技园设置
银川新华互联网科技职业技术培训学校图片
华服互联网科技官网
洛阳昕诺飞互联网科技有限公司
内蒙古九一互联网科技
群盈汇互联网科技有限公司
福建互联网展示科技馆设计