26 -从排序数组中删除重复项

给定排序的数组nums,就地删除重复项,使每个元素只出现一次并返回新的长度。

不要为另一个数组分配额外的空间,你必须这样做修改输入数组就地用O(1)额外的内存。

例1:

鉴于nums = [1,1,2],你的函数应该返回length = 2,前两个元素分别为12

例2:

 鉴于nums = [0,0,1,1,1,2,2,3,3,4],您的函数应返回length= 5nums前五个元素 01234

解法:
 1 为数组设置下标索引i=1,j=0;
 2 在以i为for循环光标向下走当下标为j的数和下标为i的数不相等时将下标为i的数赋给下标为j的数的后一位。
 3 public   int removeDuplicates(int[] nums) {
 4         int i,j=0;
 5         for ( i=1;i<nums.length;i++)
 6         {
 7             if (nums[i]!=nums[j]){
 8                 j++;
 9                 nums[j]=nums[i];
10             }
11         }
12         return j+1;
13     }
 
 
原文地址:https://www.cnblogs.com/dloading/p/10701591.html