【LeetCode從零單排】No26.Remove Duplicates from Sorted Array

李博Garvin發表於2015-02-10

題目

     題目要求:去除sort int陣列中的重複項。
     

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].


程式碼

public class Solution {
    public int removeDuplicates(int[] A) {
           if (A.length==0) return 0;
        	  int length =A.length;
        	  int[] B=new int[length];
        	  int index=0;//B指向下一個位數
        	  int temp=0;//B已經賦值的位置
        	  for(int i=0;i<length;i++){
        	      //如果第一項是零的情況{0,0,2}
        		      if(A[i]==0 && index==0){
        		    	     B[index]=0;
        		    	     index+=1;
        		      }
      			  if(A[i]!=B[temp]){
        				  B[index]=A[i];
        				  temp=index;
        				  index+=1;
        			  }        			  
        		  }
        		  //給A賦值
        	  for(int k=0;k<index;k++){
        		  A[k]=B[k];
        	  }
        	  
        	  return index;
    }
}




/********************************

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/


相關文章