Find a Value of a Mysterious Function Closest to Target LeetCode solution in Java
1class Solution {2int[] tree;3int[] arr;4int target;5int min;67public int closestToTarget(int[] arr, int target) {8int n = arr.length;9this.arr = arr;10this.target = target;11tree = new int[n << 2];12Arrays.fill(tree, (1 << 31) - 1); // initialize13min = Integer.MAX_VALUE;14for (int i = 0; i < n; i++) {15add(i, 0, n, 0);16}17return min;18}1920private void add(int x, int l, int r, int n) {21if (l == r) {22tree[n] = arr[x];23min = Math.min(min, Math.abs(tree[n] - target));24return;25}26int mid = l + (r - l) / 2;27if (x <= mid) {28add(x, l, mid, 2 * n + 1);29} else {30add(x, mid + 1, r, 2 * n + 2);31}32tree[n] = (tree[2 * n + 1] & tree[2 * n + 2]); // & two subtrees33min = Math.min(min, Math.abs(tree[n] - target));34}35}