删除排序数组中的重复数据

题目:已知一个排序int数组,删除数组中的重复的数据,使得数组中每个元素只出现一次,返回新的数组的长度

要求,不要使用额外的空间,不能new出新的空间。

 

思路:其实题目不是很难,数组已经是遍历好了的,所以如果出现重复的话,那么重复的数据一定是相邻的,所以,根据这个思想,我们可以遍历数组,找到当前值和下一个值是相同的,并且纪录下重复的情况,让数组的总长度,减去重复度,就是题目的要求了

 

public int removeDuplicates(int[] A) {

		int duplicate = 0;
		int Length = A.length;
		int i = 0;

		for (i = 0; i < A.length  -1- duplicate; i++) {

			if (A[i] == A[i + 1]) {
				
				for (int j = i; j < A.length - 1-duplicate; j++) {
					A[j] = A[j + 1];
				}
				i--;
				duplicate++;
			}

		}

		return Length - duplicate;

	}

 代码比较简单,不解释了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值