Minimum Absolute Difference Queries LeetCode solution in Java

1
class Solution {
2
public int[] minDifference(int[] nums, int[][] queries) {
3
int n = nums.length;
4
int[][] count = new int[n + 1][100];
5
int q = queries.length;
6
int ans[] = new int[q];
7

8
for (int i = 0; i < n; ++i) {
9
for (int j = 0; j < 100; ++j) count[i + 1][j] = count[i][j];
10

11
++count[i + 1][nums[i] - 1];
12
}
13

14
for (int i = 0; i < q; ++i) {
15
int low = queries[i][0];
16
int high = queries[i][1] + 1;
17
List<Integer> present = new ArrayList<>();
18
int min = 100;
19

20
for (int j = 0; j < 100; ++j) if (count[high][j] - count[low][j] != 0) present.add(j);
21

22
for (int j = 1; j < present.size(); ++j)
23
min = Math.min(min, present.get(j) - present.get(j - 1));
24

25
if (present.size() == 1) min = -1;
26

27
ans[i] = min;
28
}
29

30
return ans;
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0