删除排序数组中的重复项
一个有序数组nums,原地删除重复出现的元素,使每个元素只出现一次,返回删除后的数组的新长度
解决思璐:
双指针算法
就是快慢指针,当nuims[i]!=nums[j],那么num[i++]=num[j],最后返回的return i+1就是其数组长度
代码:
package com.fan.suanfati;
/**
* 俩个指针,如果所数字相等的接着后移,不相等就把数组[i+1]=[j],最后排除数组的重复项
*/
public class ShuangChongzhizhen {
public static void main(String[] args) {
int [] nums={0,1,2,3,3,4,4,5};
int i = ZhiZhen(nums);
System.out.println(i);
}
public static int ZhiZhen(int [] num){
if (num.length==0){
return 0;
}
int i=0;
for (int j = 1; j <num.length ; j++) {
if (num[j]!=num[i]){
i=i+1;
num[i]=num[j];
}
}
return i+1;
}
}