Skip to content

Commit b239073

Browse files
authored
Improved task 1854.
1 parent f69513e commit b239073

File tree

1 file changed

+16
-18
lines changed
  • src/main/java/g1801_1900/s1854_maximum_population_year

1 file changed

+16
-18
lines changed
Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
11
package g1801_1900.s1854_maximum_population_year;
22

3-
// #Easy #Array #Counting #2022_05_08_Time_10_ms_(9.66%)_Space_43.8_MB_(6.38%)
4-
5-
import java.util.HashMap;
6-
import java.util.Map;
3+
// #Easy #Array #Counting #2022_05_10_Time_0_ms_(100.00%)_Space_42.7_MB_(24.42%)
74

85
public class Solution {
96
public int maximumPopulation(int[][] logs) {
10-
int maxCnt = 0;
11-
int earliest = logs[0][0];
12-
Map<Integer, Integer> map = new HashMap<>();
13-
for (int[] people : logs) {
14-
for (int i = people[0]; i < people[1]; i++) {
15-
int val = map.getOrDefault(i, 0) + 1;
16-
map.put(i, val);
17-
if (maxCnt < val) {
18-
maxCnt = val;
19-
earliest = i;
20-
} else if (maxCnt == val) {
21-
earliest = Math.min(earliest, i);
22-
}
7+
int[] arr = new int[101];
8+
for (int i = 0; i < logs.length; i++) {
9+
arr[logs[i][0] - 1950]++;
10+
arr[logs[i][1] - 1950]--;
11+
}
12+
for (int i = 1; i < 101; i++) {
13+
arr[i] += arr[i - 1];
14+
}
15+
int maxyear = 1950;
16+
int max = 0;
17+
for (int i = 0; i < 101; i++) {
18+
if (arr[i] > max) {
19+
max = arr[i];
20+
maxyear = i + 1950;
2321
}
2422
}
25-
return earliest;
23+
return maxyear;
2624
}
2725
}

0 commit comments

Comments
 (0)