当前位置: 首页 > article >正文

Leetcode 3277. Maximum XOR Score Subarray Queries

  • Leetcode 3277. Maximum XOR Score Subarray Queries
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3277. Maximum XOR Score Subarray Queries

1. 解题思路

这一题其实是一个比较典型的动态规划的题目,可惜我没有自力搞定,是看大佬的算法才想明白的,着实有点惭愧……

我们首先按照题目计算出任意子序列 s i , j s_{i,j} si,j的XOR score,根据题中迭代计算规则,不难得到递推关系:

s i , j = s i , j − 1 ⊕ s i + 1 , j s_{i, j} = s_{i, j-1} \oplus s_{i+1, j} si,j=si,j1si+1,j

然后,我们要求任意范围 s i , j s_{i, j} si,j内的最大XOR score,同样有递推关系:

S i , j = max ⁡ ( s i , j , S i , j − 1 , S i + 1 , j ) S_{i, j} = \max(s_{i, j}, S_{i, j-1}, S_{i+1, j}) Si,j=max(si,j,Si,j1,Si+1,j)

由此,我们即可得到任意范围内的max XOR score的答案了。此时,我们根据具体的query找到对应的答案即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maximumSubarrayXor(self, nums: List[int], queries: List[List[int]]) -> List[int]:
        n = len(nums)
        score = [[0 for _ in range(n)] for _ in range(n)]

        for i in range(n):
            score[i][i] = nums[i]
        
        for d in range(1, n):
            for l in range(n - d):
                r = l + d
                score[l][r] = score[l][r-1] ^ score[l+1][r]
        
        answer = deepcopy(score)
        for d in range(1, n):
            for l in range(n - d):
                r = l + d
                answer[l][r] = max(score[l][r], answer[l+1][r], answer[l][r-1])
        
        ans = [answer[l][r] for l, r in queries]
        return ans

提交代码评测得到:耗时8065ms,占用内存163.1MB。


http://www.kler.cn/a/287252.html

相关文章:

  • 字节青训-判断数组是否单调、判断回旋镖的存在、字符串解码问题、小F的矩阵值调整、数字字符串中圆圈的数量计算 、小Q的非素数和排列问题
  • 【东莞石碣】戴尔R740服务器维修raid硬盘问题
  • kubernetes如何配置默认存储
  • H.265流媒体播放器EasyPlayer.js网页直播/点播播放器WebGL: CONTEXT_LOST_WEBGL错误引发的原因
  • 【UGUI】背包的交互01(道具信息跟随鼠标+道具信息面板显示)
  • 了解什么是Python(简介)
  • PostgreSQL LIMIT 子句的使用与优化
  • Jenkins版本升级
  • 米家“智能中枢网关”和“智能多模网关”有什么区别?
  • 快速回顾-HTML5
  • 前端宝典二十一:前端异步编程规范手写Promise、async、await
  • 01.项目初始化
  • 解决yum不能正常使用,报错: No module named yum,如何安装python2和python3并行版本,搭建自动化环境
  • 【Python机器学习】NLP词中的数学——向量化
  • 驭势科技研究成果入选学术顶会IROS 2024
  • LuaJit分析(十)luajit自定义修改
  • 如何使用GPT画出带中文的图和表?-已解决GPT画图表出现乱码的问题
  • 优先级队列面试题详解
  • link标签的用途
  • 微软 Maia 100 酷炫登场,强势叫板英伟达!
  • 找出成员满足条件的整个分组
  • el-dropdown不能自己在每一项添加方法,控制台会报错
  • 如何在 PostgreSQL 中安装和配置空间数据支持
  • Linux Kernel 6.12版预计将支持在崩溃后显示二维码 后续可以解码排查错误
  • docker导出导入镜像
  • golang并发编程—— 并发模式