1. 程式人生 > >java基礎資料遍歷(4)刪除陣列中重複數字

java基礎資料遍歷(4)刪除陣列中重複數字

題目要求:
給定一個整數一維陣列,其中可能有多個數字重複,請將多餘重複的數字刪除保留唯一一個,生成新的陣列。

解題思路:
1.遍歷整個陣列,同時建立一個等長度的標記陣列。將陣列中的每個數與該數前面所有的數進行比較,當數字重複時,將標記陣列的同位置數字標記為1.
這裡寫圖片描述
2.確定出新陣列的長度
3.對新產生的陣列進行賦值操作。

實際操作

    public static void main(String[] args) {
        int[] array={5,3,12,1,3,22,34,21,3,1,2,5,21,97,5,4,3};
        int[] newArray=deleteDuplicate(array
); for (int i = 0; i < newArray.length; i++) { System.out.print(newArray[i]+" "); } } public static int[] deleteDuplicate(int[] array) { int[] duplicateFlag=new int[array.length]; int singNum=0; //將陣列每個數與該數前面所有的數比較,確定是否重複 for (int i = 0
; i < duplicateFlag.length; i++) { for (int j = 0; j < i; j++) { if (array[i]==array[j]) { duplicateFlag[i]=1;//重複就設為1 break; } } } //確定刪除重複數字後新陣列的大小,並建立新陣列 for (int i = 0; i < duplicateFlag.length; i++) { if
(duplicateFlag[i]==0) { singNum++; } } int[] newArray=new int[singNum]; //給新陣列逐個賦值 singNum=0; for (int i = 0; i < duplicateFlag.length; i++) { if (duplicateFlag[i]==0) { newArray[singNum]=array[i]; singNum++; `` } return newArray; } }

實際結果:
這裡寫圖片描述