java基礎資料遍歷(4)刪除陣列中重複數字
阿新 • • 發佈:2019-02-06
題目要求:
給定一個整數一維陣列,其中可能有多個數字重複,請將多餘重複的數字刪除保留唯一一個,生成新的陣列。
解題思路:
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;
}
}
實際結果: