2025-01-08:找到按位或最接近 K 的子数组。用go语言,给定一个数组 nums 和一个整数 k,你的目标是找到一个子数组,使得该子数组中所有元素进行按位或运算后的结果与 k 之间的绝对差值尽量小。
具体地,你需要确定一个子数组 nums[l..r],使得以下表达式的值最小化: |k - (nums[l] OR nums[l + 1] ... OR nums[r])| 最后,返回这个最小绝对差值。 这里所说的子数组指的是数组中连续的非空元素序列。 1 <= nums.length <= 100000。 1 <= nums[i] <= 1000000000。 1 <= k <= 1000000000。 输入:nums = [1,2,4,5], k = 3。 输出:0。 解释: 子数组 nums[0..1] 的按位 OR 运算值为 3 ,得到最小差值 |3 - 3| = 0 。
具体地,你需要确定一个子数组 nums[l..r],使得以下表达式的值最小化: |k - (nums[l] OR nums[l + 1] ... OR nums[r])| 最后,返回这个最小绝对差值。 这里所说的子数组指的是数组中连续的非空元素序列。 1 <= nums.length <= 100000。 1 <= nums[i] <= 1000000000。 1 <= k <= 1000000000。 输入:nums = [1,2,4,5], k = 3。 输出:0。 解释: 子数组 nums[0..1] 的按位 OR 运算值为 3 ,得到最小差值 |3 - 3| = 0 。