每日一刷,强迫学习
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this in place with constant memory.
For example,
Given input array A = [1,1,2]
,
Your function should return length = 2
, and A is now [1,2]
.
很简单,不赘述了,注意判断输入为1或者为空的情况。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package children;
import java.util.Arrays;
/**
*
* @author zhaoyufeng
*/
public class RemoveDup {
public int removeDuplicates(int[] A) {
int length = 0;
int j = 0;
if(A.length <=1)
return A.length;
for(int i = 1; i < A.length; i++){
if(A[i] != A[j]){
A[j+1] = A[i];
j++;
}
}
return j+1;
}
/**
* @param args the command line arguments
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception {
int a[] = {1, 1, 2};
RemoveDup b = new RemoveDup();
b.removeDuplicates(a);
System.out.println("a.length is " + a.length);
try{
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
}catch(Exception e){
}
}
}