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;
    }
};
相关推荐
Navigator_Z13 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
mmmmath_314 小时前
LeetCode.104.二叉树的最大深度
数据结构·leetcode
Tisfy18 小时前
LeetCode 2333.最小差值平方和:排序 + 数学计算(不用二分)
数学·算法·leetcode·题解·贪心·排序
aqiu11111118 小时前
【C++算法打怪专栏】LeetCode 217. 存在重复元素(解法总结)
c++·算法·leetcode
yi01120 小时前
DAY28: LeetCode 111. 二叉树的最小深度
人工智能·笔记·python·算法·leetcode·二叉树·递归
局部有解21 小时前
Leetcode Hot100 - 最长连续序列
算法·leetcode·职场和发展
java_nnnn1 天前
LeetCode刷题滑动窗口(最大连续1的个数三+将x减到0的最小操作数)Java
算法·leetcode·职场和发展
_不会dp不改名_1 天前
leetcode_3727 最大平方交替和
linux·算法·leetcode
Tisfy1 天前
LeetCode 3727.最大交替平方和:排序 (双指针可选)
算法·leetcode·题解·贪心·数组·排序
Nil2081 天前
leetcode 1143最长公共子序列
算法·leetcode·职场和发展