296. 数组去重
给定一个长度为
N
N
的整数数组
arr
a
r
r
,返回去掉重复元素之后的数组(去掉重复元素前后数组元素相对次序不变)
样例
输入:[3,4,3,6]输出:[3,4,6]解释:元素3重复,所以只需要保留一个元素3而且去重前后数组元素相对次序不变,所以元素4还在元素3后面,元素6还在元素3,4后面
注意事项
1 \leq N \leq 10^5
1
≤
N
≤
1
0
5
-10^9 \leq arr[i] \leq 10^9
−
1
0
9
≤
a
r
r
[
i
]
≤
1
0
9
public class Solution {
/**
* @param arr: a integer array
* @return: return the unique array
*/
public int[] getUniqueArray(int[] arr) {
// write your code here
Map<Integer,Integer> map = new LinkedHashMap<>();
for (int value : arr) {
map.put(value,value);
}
int[] ints = new int[map.size()];
int i=0;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
ints[i]=entry.getKey();
i++;
}
return ints;
}
}
public class Solution {
/**
* @param arr: a integer array
* @return: return the unique array
*/
public int[] getUniqueArray(int[] arr) {
// write your code here
int[] ret = new int[arr.length];
int start = 0;
boolean add;
for (int i = 0; i < ret.length; i++) {
add = true;
for (int j = 0; j < start; j++) {
if (ret[j] == arr[i]) {
add = false;
break;
}
}
if (add) {
ret[start] = arr[i];
start++;
}
}
int[] ints = new int[start];
System.arraycopy(ret, 0, ints, 0, start);
return ints;
}
}