源地址
https://app.codility.com/programmers/lessons/6-sorting/distinct/
Distinct
寫一個函數
class Solution {
public int solution(int[] A);
}
給定一個含有N個整數的數組A,返回A中不重複值的個數.
比如:
A[0] = 2 A[1] = 1 A[2] = 1
A[3] = 2 A[4] = 3 A[5] = 1
函數應該返回3,因爲不重複的值是1,2,3.
假定:
- N是範圍在的整數[0…100,000]
- A中的每一個元素都是範圍在的整數 [−1,000,000…1,000,000]
第一步
在java中,統計不重複的數,用HashMap一步搞定
public int solution(int[] A) {
HashSet<Integer> s = new HashSet<Integer>();
for (int a : A) {
s.add(a);
}
return s.size();
}
用排序來做
因爲第6課是排序,那麼用排序來試試看
public int solution(int[] A) {
Arrays.sort(A);
int N = A.length;
int dup = 0;
for (int i = 0; i < N - 1; i++) {
if (A[i] == A[i + 1]) {
dup++;
}
}
return N - dup;
}