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;
    }
};
相关推荐
文丑颜不良啊1 天前
LeetCode1661~1680题目解析
java·leetcode
文丑颜不良啊2 天前
LeetCode1721~1740题目解析
java·leetcode
文丑颜不良啊2 天前
LeetCode1681~1700题目解析
java·leetcode
开开心心就好2 天前
网页图片批量下载工具,输入链接就保存
服务器·算法·leetcode·支持向量机·pdf·ocr·1024程序员节
圣保罗的大教堂2 天前
leetcode 462. 最小操作次数使数组元素相等 II 中等
leetcode
Navigator_Z2 天前
LeetCode //C - 1313. Decompress Run-Length Encoded List
c语言·算法·leetcode
Nuanyt2 天前
LeetCode Hot 100 链表专题(四)· 3 题(Java)
java·算法·leetcode·链表·双指针
圣保罗的大教堂2 天前
leetcode 453. 最小操作次数使数组元素相等 中等
leetcode
Tisfy2 天前
LeetCode 0453.最小操作次数使数组元素相等:两次遍历(反向思维)
算法·leetcode·题解·遍历·反向思维
君万2 天前
【LeetCode每日一题】回溯:46. 全排列 78. 子集 39. 组合总和
算法·leetcode·go