力扣题库之删除数组重复项

力扣题库之删除数组重复项

  • 题目 : 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

  • 其实看了测试用例才发现,这道题知识让我们将不重复数组想排列到前面,并输出不重复的项的个数,在不重新开辟内存空间的情况下,想要删除重复数据几乎是不可能的(至少我不会)。读懂题意之后就可以开始编写代码了,如下:


			//注意 : 这里所要求的都是有序数组
			var removeDuplicates = function(nums) {
			    var j = 0;
			    for(let i = 1;i< nums.length ;i++){
					//当相邻两项不相等时,将值赋值给num[j]
			        if(nums[i]!=nums[i-1]){
			            j++;
			            nums[j] = nums[i];
						// console.log(nums)
			        }
			    }
			    return j+1;
			}
			//第一轮  :  [0, 1, 1, 1, 1, 2, 2, 3, 3, 4]
			//第二轮  :  [0, 1, 2, 1, 1, 2, 2, 3, 3, 4]
			//第三轮  :  [0, 1, 2, 3, 1, 2, 2, 3, 3, 4]
			//第四轮  :  [0, 1, 2, 3, 4, 2, 2, 3, 3, 4]
			console.log(removeDuplicates([0,0,1,1,1,2,2,3,3,4]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值