Skip to content

Commit ba75f98

Browse files
authored
Update index.ts
1 parent f41ab0b commit ba75f98

File tree

1 file changed

+13
-11
lines changed
  • minimum-absolute-difference-queries

1 file changed

+13
-11
lines changed

minimum-absolute-difference-queries/index.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
export default function minDifference(
22
nums: number[],
3-
queries: number[][],
3+
queries: number[][]
44
): number[] {
55
const n = nums.length;
66

7-
const presum = Array(100)
7+
const sorted=[...new Set(nums)].sort((a,b)=>a-b)
8+
9+
const presum = Array(100)
810
.fill(0)
911
.map(() => Array<number>(n).fill(0));
1012

11-
for (let k = 1; k <= 100; k++) {
13+
for (const k of sorted) {
1214
for (let i = 0; i < n; i++) {
13-
presum[k - 1][i] = (i == 0 ? 0 : presum[k - 1][i - 1]) +
14-
Number(nums[i] == k);
15+
presum[k - 1][i] =
16+
(i == 0 ? 0 : presum[k - 1][i - 1]) + Number(nums[i] == k);
1517
}
1618
}
1719

1820
return queries.map(([left, right]) => {
1921
const arr = Array<number>();
20-
for (let k = 1; k <= 100; k++) {
21-
const count = presum[k - 1][right] -
22+
for (const k of sorted) {
23+
const count =
24+
presum[k - 1][right] -
2225
(left == 0 ? 0 : presum[k - 1][left - 1]);
2326

2427
if (count) {
@@ -28,14 +31,13 @@ export default function minDifference(
2831
if (
2932
arr.length >= 2 &&
3033
arr[arr.length - 1] - arr[arr.length - 2] == 1
31-
) {
32-
return 1;
33-
}
34+
)
35+
return 1;
3436
}
3537
if (arr.length <= 1) return -1;
3638
else {
3739
return Math.min(
38-
...arr.map((v, i, a) => (i === 0 ? Infinity : v - a[i - 1])),
40+
...arr.map((v, i, a) => (i === 0 ? Infinity : v - a[i - 1]))
3941
);
4042
}
4143
});

0 commit comments

Comments
 (0)