给你一个整数数组 nums
和一个整数 k
,请你返回 nums
中有多少个满足:子数组中所有元素按位 AND
的结果为 k
。
示例 1:
输入:nums = [1,1,1], k = 1
输出:6
解释:
所有子数组都只含有元素 1 。
示例 2:
输入:nums = [1,1,2], k = 1
输出:3
解释:
按位 AND
值为 1 的子数组包括:[1,1,2]
, [1,1,2]
, [1,1,2]
。
示例 3:
输入:nums = [1,2,3], k = 2
输出:2
解释:
按位 AND
值为 2 的子数组包括:[1,2,3]
, [1,2,3]
。
提示:
1 <= nums.length <= 105
0 <= nums[i], k <= 109
(l, r)
such that nums[l] & nums[l + 1] & … & nums[r] == k
.l
.r
for a fixed l
, then the AND value of the subarray either decreases or remains unchanged.