实现方式
package cn.cnsy123.test;
import java.util.Arrays;
/**
* @author yangpengfei
* <p>email:yangpengfei360@126.com</p>
* @version 1.0
* @date 2018-03-12 17:40:00
* @description 请实现一个算法,返回一个数组,该数组是移除了原数组中的重复元素,并保持元素的顺序。例如:输入:[2,1,2,3],输出:[2,1,3]。
*/
public class ArrayDemo {
/**
* 我认为重点在于数组的扩容思想
*/
public static int [] convertDistinctArr(int [] sourceArr) {
int resultArrSize = 0;
int [] result = new int [resultArrSize];
for(int i = 0; i< sourceArr.length; i++) {
//如果数据不存在
if(!checkDataIsExist(result, sourceArr[i])) {
++resultArrSize;
result = Arrays.copyOf(result, resultArrSize);
result[resultArrSize-1] = sourceArr[i];
}
}
return result;
}
/**
* 检查结果目标数组中是否有该元素
*/
private static boolean checkDataIsExist(int [] target,int source) {
//如果目标数组刚初始化,直接放回不存在
if(target.length < 1) {
return false;
}
boolean flag = false;
for(int i = 0; i< target.length; i++) {
if(target[i] == source) {
flag = true;
break;
}
}
return flag;
}
}