LeetCode 刻意练习02--删除排序数组中的重复项

删除排序数组中的重复项

在这里插入图片描述
题目:
参数列表一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回值类型移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

要求:
返回长度,但是要改变数组,数组前几位必须是不重复的数字。

思路:
如果输入数组为空,那么返回0;
否则
首先将数组第一个数存在temp中,进行遍历,如果和temp元素相同的,count自加,(count用于计算一共有几个重复元素)。如果和temp元素不同,则将该数存入temp。并且将该值赋给数组的第二位元素。依次类推。

public int removeDuplicates(int[] nums) {
		 if(nums.length==0)
		 {
			 return 0;
		 }
		 else {

			 int temp=nums[0];
			 int count=0,j=0;
			 int length=0;
			 
			 for(int i=1;i<nums.length;i++)
			 {
				 if(nums[i]==temp)
				 {
					 count++;
				 }
				 else {
					 temp=nums[i];
					 j++;
					 nums[j]=temp;
				 }
				 
			 }
			 
			length=nums.length-count;
			 return  length;
		 }
	    }
发布了49 篇原创文章 · 获赞 2 · 访问量 896

猜你喜欢

转载自blog.csdn.net/qq_43720551/article/details/104617629