【LC3152】特殊数组 II
题干
如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。
你有一个整数数组 nums
和一个二维整数矩阵 queries
,对于 queries[i] = [fromi, toi]
,请你帮助你检查 子数组 nums[fromi..toi]
是不是一个 特殊数组 。
返回布尔数组 answer
,如果 nums[fromi..toi]
是特殊数组,则 answer[i]
为 true
,否则,answer[i]
为 false
。
思路
根据题意,如果某一个数
1 | (nums[i-1] ^ nums[i]) & 1 |
我们维护一个前缀和数组
显然,如果查询区间符合特殊数组的规则,则有
代码实现
1 | func isArraySpecial(nums []int, queries [][]int) []bool { |