-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMaxCounters.java
More file actions
29 lines (28 loc) Β· 904 Bytes
/
Copy pathMaxCounters.java
File metadata and controls
29 lines (28 loc) Β· 904 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class MaxCounters {
public int[] solution(int N, int[] A) {
int[] counters = new int[N];
/**
* maxVal β κ·μΉ1 μ€νλ λλ§λ€ μ
λ°μ΄νΈ (νμ¬ μ΅λκ° μΆμ )
* lastMax β κ·μΉ2 μ€νλ λλ§ μ
λ°μ΄νΈ (κΈ°μ€κ° μ μ₯)
*/
int maxVal = 0;
int lastMax = 0;
for (int i = 0; i < A.length; i++) {
if (A[i] <= N) {
if (counters[A[i] - 1] < lastMax) {
counters[A[i] - 1] = lastMax;
}
counters[A[i] - 1] += 1;
maxVal = Math.max(maxVal, counters[A[i] - 1]);
} else {
lastMax = maxVal;
}
}
for (int i = 0; i < N; i++) {
if (counters[i] < lastMax) {
counters[i] = lastMax;
}
}
return counters;
}
}