力扣每日一题:1310.子数组异或查询

On the convergence of FedAvg on non-iid data 阅读详情

1310.子数组异或查询

https://leetcode-cn.com/problems/xor-queries-of-a-subarray/

难度:中等

题目:

有一个正整数数组arr,现给你一个对应的查询数组queries,其中queries[i] = [Li,Ri]。

对于每个查询i,请你计算从Li到Ri的XOR值(即arr[Li] xor arr[Li+1] xor ... xor arr[Ri])作为本次查询的结果。

并返回一个包含给定查询queries所有结果的数组。

提示:

  • 1 <= arr.length <= 3 *10^4
  • 1 <= arr[i] <= 10^9
  • 1 <= queries.length <= 3 * 10^4
  • queries[i].length == 2
  • 0 <= queries[i][0] <= queries[i][1] < arr.length

示例:

示例 1:

输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]]
输出:[2,7,14,8] 
解释:
数组中元素的二进制表示形式是:
1 = 0001 
3 = 0011 
4 = 0100 
8 = 1000 
查询的 XOR 值为:
[0,1] = 1 xor 3 = 2 
[1,2] = 3 xor 4 = 7 
[0,3] = 1 xor 3 xor 4 xor 8 = 14 
[3,3] = 8

示例 2:

输入:arr = [4,8,2,10], queries = [[2,3],[1,3],[0,0],[0,3]]
输出:[8,0,4,4]

分析

根据题目要求,我们每次需要计算queries区间内arr数组的XOR值。
这种重复的累加,第一时间需要考虑前缀和的思想,这样就将原本O(n) ** 2的复杂度降低为O(n)。

我们首先循环计算一次arr数组的XOR前缀和值
然后开始判断,如果left是从0开始的那么我们直接计算arr[right],
当left不等于零时,我们需要进行相减操作,这里需要注意,要减去的是left-1,因为left已经包含在计算内了。

解题:

class Solution:
    def xorQueries(self, arr, queries):
        ret = []
        for i in range(1, len(arr)):
            arr[i] ^= arr[i - 1]
        for querie in queries:
            left , right = querie
            if left==0:
                ret.append(arr[right])
            else:
                ret.append(arr[right] ^ arr[left- 1])
        return ret

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

Winform零基础从入门到精通(3)——WinForm基础语法与事件机制详解 通过系统学习基础语法与事件机制,结合实际问题调试,可以快速掌握WinForm开发的核心技能。遇到问题时,优先检查事件绑定和异常处理,逐步培养代码规范意识。​安全转换字符串为数值,避免输入错误导致的崩溃。验证输入(如仅允许数字)​)传递事件相关数据。◦ 事件参数类型:​。 阅读详情

相关推荐

华中科技大学 计算机组成原理 educoder Logisim平台 计算机数据表示实验

本文主要是对 计算机数据表示实验的笔记和相关Logisim平台的图,供大家学习交流使用。 需要源文件或者源代码,可以留言评论! 目录实验目的第1关:汉字国标码转区位码实验第2关:汉字机内码获取实验第3关:偶校验编码设计第4关:偶校验解码电路设计第5关:16位海明编码电路设计第6关:16位海明解码电路设计第7关:海明编码流水传输实验第8关:16位CRC并行编解码电路设计第9关:CRC编码流水传输实验实验结果: 实验目的 本实训将帮助同学们巩固对计算机中数据表示方法的理解,要求能设计汉字国标码与区位码之间的转换

weixin_48383580的博客 2万+

LeetCode之找出数组游戏的赢家(五千四百七十六)

通过理解题意,可以将比较过程类比成冒泡过程,我们在冒泡过程需要注意是否为连续胜出的情况。

liuzhen007的专栏 722

SAP 配额修改 + 修改记录写入实现

采购配额修改并写入修改记录 cdhdr 和 cdpos

GAVIN 1104

【算法练习】leetcode每日一题/动态规划 978. 最长湍流子数组+1186. 删除一次得到子数组最大和

978. 最长湍流子数组 难度中等108 当A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组: 若i <= k < j,当k为奇数时,A[k] > A[k+1],且当k为偶数时,A[k] < A[k+1]; 或若i <= k < j,当k为偶数时,A[k] > A[k+1],且当k为奇数时,A[k] < A[k+1]。 也就是说,如果比较符号在子数组中的每个相邻元素对之间翻...

一蓑烟雨任平生 277

Yakit实战:利用验证码识别插件突破Webfuzzer自动化测试瓶颈

本文详细介绍了如何利用Yakit的Webfuzzer模块结合验证码识别插件,突破自动化安全测试中的验证码瓶颈。通过实战演示,讲解了如何部署本地OCR服务、编写热加载脚本,实现从获取验证码到自动识别并替换的全流程自动化,从而让Webfuzzer能够高效、无人值守地进行大规模密码喷洒等测试。

weixin_29323493的博客 283

【Rcode】生存分析: KM & COX回归& 随机森林& nomogram

本文使用了R——survival包下的lung数据进行方法测试: 1)KM 2) Cox回归:多因素 3)随机森林因子(根据cox回归结果) 4)nomogram ( 根据cox回归结果,建立了中位生存时间,1年5年生存率的概率计算) -------------------????????‍♀️本文只有干货,非常干!????----------------------------- 一、数据加载 #生存分析 library("survival") library("survminer") data("

weixin_43172152的博客 9275

[20210512]LeetCode每日一题 - 1720. 解码异或后的数组

题目描述【中等】 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor ... xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 示例 1: 输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]] 输出:[2,7

全栈攻城狮? 298

腾讯混元3D世界模型2.0实战:从AI生成到Unity/UE引擎集成全指南

生成式AI正在重塑3D内容创作流程,其核心原理是通过大语言模型理解自然语言描述,并驱动多阶段生成流水线自动创建3D资产与场景。这项技术为游戏开发、虚拟仿真和数字孪生领域带来了革命性的效率提升,能够将传统需要数周的美术协作流程压缩至几分钟。在实际应用中,开发者需要掌握本地环境部署、模型推理优化以及生成资产与主流游戏引擎的集成工作流。本文以腾讯开源的混元3D世界模型为例,详细解析如何将AI生成的场景通过插件高效导入Unity和Unreal Engine,并针对光照烘焙、材质调整、性能优化等工程实践问题提供解决方

cnracht8153的博客 1397

LeetCode刷题(138)~独一无二的出现次数

题目描述 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。 示例 2: 输入:arr = [1,2] 输出:false 示例 3: 输入:arr = [-3,0,1,-3,1,1,1,-3,10,0] 输出:true 提示: 1

海到无边天作岸 山登绝顶我为峰 2264

Bertopic库安装(二)

Bertopic库安装

weixin_43392789的博客 4895

基于Simulink进行微电网中DC-DC变换器的仿真建模

微电网:包括可再生能源发电设备、储能系统和负载,可以独立于大电网运行,也可以并网运行。重要性提高能源可靠性:通过本地化供电减少对外部电网的依赖。促进可再生能源利用:支持高效整合多种可再生能源。挑战多源管理:不同类型的能源产生方式各异,需设计灵活的电源管理系统。能量转换效率:需要高效的能量转换装置来确保能源的有效利用。首先明确要模拟的任务内容。设计一个能够在不同输入条件下为微电网提供稳定输出电压的DC-DC变换器。根据微电网的工作状态调整控制策略以维持最佳性能。

amy_mhd的博客 157

力扣每日一题:1310. 子数组异或查询

目录题目:1310. 子数组异或查询示例1示例2提示:解题思路解题代码 题目:1310. 子数组异或查询 难度: 中等 题目: 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 示例1 输入:arr = [1,3,

aruewds的博客 209

Oracle EBS Tax 四国实现详解:印度、巴西、美国、阿根廷

印度:务必启用India Localization模块,不要尝试用标准EBTax模拟GST逻辑 巴西:必须配置NF-e接口,建议聘请本地税务顾问设置CFOP和NCM代码映射 美国:跨州业务强烈建议购买Vertex或Avalara服务,自建税率表维护成本极高 阿根廷:注意1:1:1架构限制,提前规划Legal Entity和OU结构

金牌架构师 262

5.12 leetcode每日一题:1310. 子数组异或查询

5.12 leetcode每日一题:1310. 子数组异或查询一、题目二、超时的题解1.超时的代码总结三、正确的方法:前缀求和1.正确的代码总结 一、题目 示例:有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 二、

placeboo的博客 195

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【LeetCode每日一题】1310. 子数组异或查询

【LeetCode每日一题】1310. 子数组异或查询题目:有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。对于每个查...

Francis的博客 339

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

[C++&Rust]LeetCode No.1310 子数组异或查询(每日一题)

原贴地址:http://blog.leanote.com/post/dawnmagnet/0bb52ca14c01 题目 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 示例 1: 输入:arr = [1,3,4,

SGCTSGCT的博客 353

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

LeetCode #1310 子数组异或查询——每日一题

1310. 子数组异或查询 有一个正整数数组arr,现给你一个对应的查询数组queries,其中queries[i] = [Li,Ri]。 对于每个查询i,请你计算从Li到Ri的XOR值(即arr[Li]xorarr[Li+1]xor...xorarr[Ri])作为本次查询的结果。 并返回一个包含给定查询queries所有结果的数组。 示例 1: 输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3...

JUST CODE IT 165

Leetcode--1310子数组异或查询

今天的每日一题比较简单,就是基本的异或操作,先放上自己的代码,开销有点大。一会更新下大佬们的代码,学习下新思路。 思路 使用暴力解法,根据queries二维数组内每个子数组所指定的区间,逐个得到对应的异或结果,然后存储到结果数组内。时间开销比较大,并且很容易超时。 代码 class Solution { public static int[] xorQueries(int[] arr, int[][] queries) { int len = queries.length;

weixin_41963310的博客 200

LeetCode1310. 子数组异或查询 / 307. 区域和检索 - 数组可修改(线段树、树状数组)

1310. 子数组异或查询 2021.5.12每日一题 题目描述 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor ... xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 示例 1: 输入:arr = [1,3,4,8], queries = [[0,1],[

windyjcy的博客 231

1310. 子数组异或查询

2021-05-12 LeetCode每日一题 链接:https://leetcode-cn.com/problems/xor-queries-of-a-subarray/ 题目 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries

秃头哥编程 243

LeetCode.1310 子数组异或查询

原题 https://leetcode-cn.com/problems/xor-queries-of-a-subarray/ 思路 1. 最直接的办法,暴力求解 2. 前缀和,经过前几天的每日一题,都是异或运算,已经掌握了其特征 异或的特点:相同的为0,不同的为1 题解 class Solution { // 暴力求解 public int[] xorQueries(int[] arr, int[][] queries) { int len = queries.length;

wazk2008的博客 139

【Leetcode】1310. 子数组异或查询【每日一题系列20210512】

解题思路 利用 与或的 特性 A ^ A = 0, B ^ 0 = B 的特性 假设数组现在的元素 是 [A, B, C, D, E] 我们想计算 D, E 的结果,那可以用 map[E] ^ map[C] = A^B^C^D^E ^ A^B^C = A^A^B^B^C^C^D^E = 0^0^0^D^E = D ^ E class Solution: def xorQueries(self, arr: List[int], queries: List[List[int]]) ->...

m0_52083505的博客 104

leetcode每日一题—1310.子数组异或查询

题目: 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。 并返回一个包含给定查询 queries 所有结果的数组。 解答: class Solution: def xorQueries(self, arr: List[int], queries: List[Lis

jqq125的博客 151

2021-05-12力扣每日一题

1310 子数组异或查询 问题描述: ​ 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]。对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 arr[Li] xor arr[Li+1] xor … xor arr[Ri])作为本次查询的结果。并返回一个包含给定查询 queries 所有结果的数组。 示例1: 输入:arr = [1,3,4,8], queries = [[0,1],[1,2],[0,3],[3,3]] 输出:

Gnomeshgh的博客 252

Leetcode每日刷题【中】--Day 6

冲冲冲!!! 1310. 子数组异或查询(前缀异或) 一开始使用暴力解法直接就超时了。 若平均查询需要执行n/2次,m次查询就是m*n/2,时间复杂度O(m*n),时间复杂度相当的高。 这里是与前缀和相似的解法。 前缀和:有一串数字,需要求从 下标L 到下标R(L<=R)的和。 这里规定和的数组中,零号元素是0.以方便后来进行相减操作。 前缀异或:相同地,将前R个先异或,然后再进行将前面的元素进行异或。类似于前缀和的减前边的数。 # 模板 class Solution: def xorQuer

weixin_52103757的博客 179

【题解】—— LeetCode一周小结12

LeetCode每日一道一周小结12

ZShiJ的博客 1329
上一篇: 力扣每日一题:872.叶子相似的树
下一篇: 1855.下标对中的最大距离 python双指针解题
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值