给你一个二维数组 queries
,其中 queries[i]
形式为 [l, r]
。每个 queries[i]
表示了一个元素范围从 l
到 r
(包括 l 和 r )的整数数组 nums
。
在一次操作中,你可以:
a
和 b
。floor(a / 4)
和 floor(b / 4)
。你的任务是确定对于每个查询,将数组中的所有元素都变为零的 最少 操作次数。返回所有查询结果的总和。
示例 1:
输入: queries = [[1,2],[2,4]]
输出: 3
解释:
对于 queries[0]
:
nums = [1, 2]
。nums[0]
和 nums[1]
。数组变为 [0, 0]
。对于 queries[1]
:
nums = [2, 3, 4]
。nums[0]
和 nums[2]
。数组变为 [0, 3, 1]
。nums[1]
和 nums[2]
。数组变为 [0, 0, 0]
。输出为 1 + 2 = 3
。
示例 2:
输入: queries = [[2,6]]
输出: 4
解释:
对于 queries[0]
:
nums = [2, 3, 4, 5, 6]
。nums[0]
和 nums[3]
。数组变为 [0, 3, 4, 1, 6]
。nums[2]
和 nums[4]
。数组变为 [0, 3, 1, 1, 1]
。nums[1]
和 nums[2]
。数组变为 [0, 0, 0, 1, 1]
。nums[3]
和 nums[4]
。数组变为 [0, 0, 0, 0, 0]
。输出为 4。
提示:
1 <= queries.length <= 105
queries[i].length == 2
queries[i] == [l, r]
1 <= l < r <= 109
x
, the number of "/4"
operations to change it to 0 is floor(log4(x)) + 1
."/4"
operations needed.