前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >leetcode-easy-array-删除排序数组中的重复项

leetcode-easy-array-删除排序数组中的重复项

作者头像
shengjk1
发布于 2025-05-16 02:07:38
发布于 2025-05-16 02:07:38
2900
代码可运行
举报
文章被收录于专栏:码字搬砖码字搬砖
运行总次数:0
代码可运行
审题

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例 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。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

Related Topics 数组 双指针

思路

个人觉得思路还是比较清晰的,一个是遍历数组本身的指针,一个是要改变值的那个位置的指针,一个计数器,表示重复的个数。 不相等的时候,要改变值的指针加1,相等的时候计数器加 1

代码

代码不是最优的,但执行起来是 1ms 超过 98.13%

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//leetcode submit region begin(Prohibit modification and deletion)
	class Solution {
		public int removeDuplicates(int[] nums) {
			if (nums.length == 0) {
				return 0;
			} else {
				int dup = 0;
				int currNum = nums[0];
				int beginNum = 0;
				for (int i = 1; i < nums.length; i++) {
					if (currNum != nums[i]) {
						beginNum += 1;
						nums[beginNum] = nums[i];
						currNum = nums[i];
					} else {
						dup += 1;
					}
				}
				return nums.length - dup;
			}
		}
	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
删除排序数组中重复元素的方法
在上一篇文章中讨论了关于如何删除排序链表中重复元素的方法。那么如果底层数据结构是数组又将如何处理呢?
冬天里的懒猫
2020/08/03
2.1K0
删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
_kyle
2020/11/03
5.4K0
LeetCode 进阶之路 - 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5,
Li_XiaoJin
2022/06/10
2360
LeetCode-26 删除排序数组中的重复项
今天我们学习第26题删除排序数组中的重复项,这是一道简单题。像这样数组的题目经常作为面试题来考察面试者算法能力和写代码能力,因此最好能手写出该题。下面我们看看这道题的题目描述。
用户3470542
2019/06/26
5920
LeetCode-26 删除排序数组中的重复项
Leetcode No.26 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
week
2022/01/07
2060
​LeetCode 26:删除排序数组中的重复项 Remove Duplicates from Sorted Array
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
爱写bug
2019/07/15
4390
LeetCode153|删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
码农王同学
2021/01/15
3780
p26删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
东边的大西瓜
2022/05/05
3350
【leetcode系列】26. 删除排序数组中的重复项
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/
前端迷
2019/07/23
3780
【leetcode系列】26. 删除排序数组中的重复项
算法-删除已排序数组中的重复项
版权声明: https://blog.csdn.net/li_xunhuan/article/details/89843311
Fisherman渔夫
2019/07/31
3.9K0
[leetcode数组系列]3 删除排序数组中的重复项
1 leetcode原文链接 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 示例1
我是程序员小贱
2020/06/05
4.9K0
leetcode刷题(107)——26. 删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
老马的编程之旅
2022/06/22
1810
LeetCode题目26:删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
二环宇少
2020/08/13
6470
LeetCode题目26:删除排序数组中的重复项
日拱算法:删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
掘金安东尼
2022/09/19
2710
算法养成记:删除排序数组中的重复项
Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.
三哥
2020/03/12
4480
☆打卡算法☆LeetCode 26、删除有序数组中的重复项 算法解析
“将给定的有序数组删除重复出现的元素,使每个元素只出现一次,返回删除后数组的长度。”
恬静的小魔龙
2022/08/07
3450
☆打卡算法☆LeetCode 26、删除有序数组中的重复项  算法解析
​LeetCode刷题实战26:删除排序数组中的重复项
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/20
2980
【小Y学算法】⚡️每日LeetCode打卡⚡️——13.删除有序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
呆呆敲代码的小Y
2021/08/19
2330
LeetCode 26. 删除有序数组中的重复项(新方法)
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
freesan44
2021/10/05
3420
LeetCode 26. 删除有序数组中的重复项(新方法)
Leetcode打卡 | No.26 删除排序数组中的重复项
欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!
小小詹同学
2019/11/12
4410
推荐阅读
相关推荐
删除排序数组中重复元素的方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验