898. 子数组按位或操作

 位运算性质:a&b不会大于a也不会大于b,会将二进制中的1变为0,但是0不会变为1

       a|b不会小于a也不会小于b,会将二进制中的0变为1,但是1不会变为0

class Solution {
    public int closestToTarget(int[] arr, int target) {
        Set<Integer> cur = new HashSet<>();
        int res = Integer.MAX_VALUE;
        for(int num : arr) {
            Set<Integer> cur1 = new HashSet<>();
            res = Math.min(res,Math.abs(num-target));
            cur1.add(num);
            for(int k : cur) {
                cur1.add(num & k);
                res = Math.min(res,Math.abs((num&k)-target));
            }
            cur = cur1;
        }
        return res;
    }
}
原文地址:https://www.cnblogs.com/yonezu/p/13355498.html