Find a Value of a Mysterious Function Closest to Target LeetCode solution in Java

1
class Solution {
2
int[] tree;
3
int[] arr;
4
int target;
5
int min;
6

7
public int closestToTarget(int[] arr, int target) {
8
int n = arr.length;
9
this.arr = arr;
10
this.target = target;
11
tree = new int[n << 2];
12
Arrays.fill(tree, (1 << 31) - 1); // initialize
13
min = Integer.MAX_VALUE;
14
for (int i = 0; i < n; i++) {
15
add(i, 0, n, 0);
16
}
17
return min;
18
}
19

20
private void add(int x, int l, int r, int n) {
21
if (l == r) {
22
tree[n] = arr[x];
23
min = Math.min(min, Math.abs(tree[n] - target));
24
return;
25
}
26
int mid = l + (r - l) / 2;
27
if (x <= mid) {
28
add(x, l, mid, 2 * n + 1);
29
} else {
30
add(x, mid + 1, r, 2 * n + 2);
31
}
32
tree[n] = (tree[2 * n + 1] & tree[2 * n + 2]); // & two subtrees
33
min = Math.min(min, Math.abs(tree[n] - target));
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0