目前有数组” int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组不准浪费长度。
思路:1、排序。2、计数器找出重复值个数,计算得出目标数组长度。3、冒泡思想遍历数组,将不等于前一个元素的值记录入目标数组。目标数组第一个元素与原数组第一个元素相同。
import java.util.*;
class Demo9
{
public static void main(String[] args)
{
int[] arr = {11,2, 4, 2, 10, 11};
System.out.println(Arrays.toString(clear(arr)));
}
public static int[] clear(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
int index=0;
for(int i=0;i<arr.length-1;i++){
if(arr[i]==arr[i+1]){
index++;
}
}
index=arr.length-index;
int[] arr1=new int[index];
for(int i=0,j=1;i<arr.length-1;i++){
if(arr[i]!=arr[i+1]){
arr1[j]=arr[i+1];
j++;
}
}
arr1[0]=arr[0];
return arr1;
}
}
请问还有其他思路吗? |
|