leetcode 3653. 区间乘法查询后的异或 I 中等

给你一个长度为 n 的整数数组 nums 和一个大小为 q 的二维整数数组 queries,其中 queries[i] = [li, ri, ki, vi]

对于每个查询,按以下步骤执行操作:

  • 设定 idx = li
  • idx <= ri 时:
    • 更新:nums[idx] = (nums[idx] * vi) % (109 + 7)
    • idx += ki

在处理完所有查询后,返回数组 nums 中所有元素的 按位异或结果。

示例 1:

输入: nums = 1,1,1, queries = \[0,2,1,4]

输出: 4

解释:

  • 唯一的查询 [0, 2, 1, 4] 将下标 0 到下标 2 的每个元素乘以 4。
  • 数组从 [1, 1, 1] 变为 [4, 4, 4]
  • 所有元素的异或为 4 ^ 4 ^ 4 = 4

示例 2:

输入: nums = 2,3,1,5,4, queries = \[1,4,2,3,0,2,1,2]

输出: 31

解释:

  • 第一个查询 [1, 4, 2, 3] 将下标 1 和 3 的元素乘以 3,数组变为 [2, 9, 1, 15, 4]
  • 第二个查询 [0, 2, 1, 2] 将下标 0、1 和 2 的元素乘以 2,数组变为 [4, 18, 2, 15, 4]
  • 所有元素的异或为 4 ^ 18 ^ 2 ^ 15 ^ 4 = 31

提示:

  • 1 <= n == nums.length <= 10^3
  • 1 <= nums[i] <= 10^9
  • 1 <= q == queries.length <= 10^3
  • queries[i] = [li, ri, ki, vi]
  • 0 <= li <= ri < n
  • 1 <= ki <= n
  • 1 <= vi <= 10^5

分析:由于数据量比较小,直接暴力模拟,先计算所有查询,然后再对所有元素进行异或。

cpp 复制代码
class Solution {
public:
    int xorAfterQueries(vector<int>& nums, vector<vector<int>>& queries) {
        int n=queries.size();
        long long mod=1e9+7;
        for(int i=0;i<n;++i)
        {
            int l=queries[i][0],r=queries[i][1],k=queries[i][2],v=queries[i][3];
            for(int idx=l;idx<=r;idx+=k)
                nums[idx]=(long long)(1LL*nums[idx]*v)%mod;
        }
        int ans=nums[0];
        for(int i=1;i<nums.size();++i)
            ans=ans^nums[i];
        return ans;
    }
};
相关推荐
Lsk_Smion1 小时前
力扣实训 _ [200].岛屿数量
算法·leetcode·深度优先
Lsk_Smion3 小时前
力扣实训 _ [543].二叉树的直径 _ [23].合并K个升序列表
数据结构·算法·leetcode
凯瑟琳.奥古斯特3 小时前
力扣1235:加权区间调度最优解
java·python·算法·leetcode·职场和发展
memcpy04 小时前
LeetCode 2144. 打折购买糖果的最小开销【贪心】
算法·leetcode·职场和发展
散峰而望6 小时前
【算法练习】算法练习精选:陶陶摘苹果(基础+升级)、Music Notes、字串变换,你能AC几道?
数据结构·c++·算法·leetcode·贪心算法·github·动态规划
8Qi86 小时前
LeetCode 148. 排序链表 —— 解法一:自顶向下递归(分治 + 归并)
数据结构·算法·leetcode·链表·递归·分治·归并
菜菜的顾清寒7 小时前
力扣HOT100(50)动态规划-零钱兑换
算法·leetcode·动态规划
8Qi87 小时前
LeetCode 148. 排序链表 —— 解法二:自底向上归并(迭代,O(1) 空间)
数据结构·算法·leetcode·链表·归并·迭代
凯瑟琳.奥古斯特7 小时前
力扣1235完整解法详解
java·开发语言·leetcode
凯瑟琳.奥古斯特7 小时前
力扣1001网格照明解法
算法·leetcode·职场和发展