新闻详情

新闻详情

首页 / 资讯中心 / 详情

413力扣周赛

发布时间:2026/9/1 11:40:23来源:尧图网络
413力扣周赛
3274. 检查棋盘方格颜色是否相同- 给你两个字符串 coordinate1 和 coordinate2代表 8 x 8 国际象棋棋盘上的两个方格的坐标。以下是棋盘的参考图。如果这两个方格颜色相同返回 true否则返回 false。分析问题由图知假设a、b… … 用 1、2… … 代表则黑色方格的行标和列表的奇偶性一定相同反之为白格。class Solution { public: bool check(string a) { int x a[0] - a 1, y a[1] - 0; return (x1) ^ (y1); } bool checkTwoChessboards(string c1, string c2) { return !(check(c1) ^ check(c2)); } };3275. 第 K 近障碍物查询有一个无限大的二维平面。 给你一个正整数 k 同时给你一个二维数组 queries 包含一系列查询 queries[i] [x, y] 在平面上坐标 (x, y) 处建一个障碍物数据保证之前的查询 不会 在这个坐标处建立任何障碍物。 每次查询后你需要找到离原点第 k 近 障碍物到原点的 距离 。 请你返回一个整数数组 results 其中 results[i] 表示建立第 i 个障碍物以后离原地第 k 近障碍物距离原点的距离。如果少于 k 个障碍物results[i] -1 。 注意一开始 没有 任何障碍物。 坐标在 (x, y) 处的点距离原点的距离定义为 |x| |y| 。 示例 1 输入queries [[1,2],[3,4],[2,3],[-3,0]], k 2 输出[-1,7,5,3] 解释 最初不存在障碍物。 queries[0] 之后少于 2 个障碍物。 queries[1] 之后 两个障碍物距离原点的距离分别为 3 和 7 。 queries[2] 之后障碍物距离原点的距离分别为 3 5 和 7 。 queries[3] 之后障碍物距离原点的距离分别为 335 和 7 。 示例 2 输入queries [[5,5],[4,4],[3,3]], k 1 输出[10,8,6] 解释 queries[0] 之后只有一个障碍物距离原点距离为 10 。 queries[1] 之后障碍物距离原点距离分别为 8 和 10 。 queries[2] 之后障碍物距离原点的距离分别为 6 8 和10 。 提示 1 queries.length 2 * 105 所有 queries[i] 互不相同。 -109 queries[i][0], queries[i][1] 109 1 k 105分析使用优先队列当队列大小达到k时弹出堆顶元素。需要注意的点是维护队列的操作顺序是先加入元素再弹出多余元素最后取top值。struct my_cmp{booloperator()(constpairint,inta,constpairint,intb)const{returnabs(a.first)abs(a.second)-abs(b.first)-abs(b.second)0;}};classSolution{public:vectorintresultsArray(vectorvectorintqs,int k){priority_queuepairint,int,vectorpairint,int,my_cmpq;int nqs.size();vectorintans;for(int i0;in;i){int tabs(qs[i][0])abs(qs[i][1]);q.push({qs[i][0],qs[i][1]});if(ik-1)q.pop();if(ik-1){pairint,inttpq.top();ans.push_back(abs(tp.first)abs(tp.second));}else{ans.push_back(-1);}}returnans;}};选择矩阵中单元格的最大得分给你一个由正整数构成的二维矩阵 grid。 你需要从矩阵中选择 一个或多个 单元格选中的单元格应满足以下条件 - 所选单元格中的任意两个单元格都不会处于矩阵的 同一行。 - 所选单元格的值 互不相同。 你的得分为所选单元格值的总和。 返回你能获得的 最大 得分。 示例 1 输入 grid [[1,2,3],[4,3,2],[1,1,1]] 输出 8 解释 选择上图中用彩色标记的单元格对应的值分别为 1、3 和 4 。 示例 2 输入 grid [[8,7,6],[8,3,2]] 输出 15 解释 选择上图中用彩色标记的单元格对应的值分别为 7 和 8 。 提示 1 grid.length, grid[i].length 10 1 grid[i][j] 100我想出的答案将矩阵中所有方格每一行存放按值从大到小排列枚举每一种符合答案的方案求最大。复杂度为nnn^nnn最大复杂度为101010^101010。本题需要注意的点是g的行数和列数不一定相等。constintN15;classSolution{public:int ans0,n,sum0;int ar[N];int g[N][N];voiddfs(int x,int y){if(xn){if(anssum){anssum;for(int i0;ix;i)coutar[i] ;coutendl;}return;}for(int iy;in;i){bool flfalse;ar[x]g[x][i];for(int j0;jx;j){if(ar[j]ar[x]){fltrue;break;}}if(!fl){sumg[x][i];dfs(x1,0);sum-g[x][i];}}}intmaxScore(vectorvectorintgt){ngt.size();for(int i0;in;i){for(int j0;jn;j)g[i][j]gt[i][j];}dfs(0,0);returnans;}};标答枚举每一个数再枚举所有符合条件的答案。要使用二维数组存储中间结果否则会超时。x-x的结果取决于x的二进制表示中最低位的值。classSolution{public:int n0,m0;mapint,intmp;vectorintnums;int memo[105][110];intdfs(vectorvectorintg,int pos,int rs){if(pos0)return0;int resmemo[pos][rs];if(res!-1)returnres;resdfs(g,pos-1,rs);// 枚举每行for(int tmp[nums[pos]],lb;t;t^lb){lbt-t;if(rslb)continue;resmax(res,dfs(g,pos-1,rs|lb)nums[pos]);}memo[pos][rs]res;returnres;}intmaxScore(vectorvectorintg){ng.size(),mg[0].size();for(int i0;i105;i)memset(memo[i],-1,sizeof memo[i]);for(int i0;in;i){for(int j0;jm;j){int xg[i][j];mp[x]|1i;}}for(auto[x,_]:mp){nums.push_back(x);}returndfs(g,nums.size()-1,0);}};3277. 查询子数组最大异或值给你一个由 n 个整数组成的数组 nums以及一个大小为 q 的二维整数数组 queries其中 queries[i] [li, ri]。 对于每一个查询你需要找出 nums[li..ri] 中任意 子数组 的 最大异或值。 数组的异或值 需要对数组 a 反复执行以下操作直到只剩一个元素剩下的那个元素就是 异或值 对于除最后一个下标以外的所有下标 i同时将 a[i] 替换为 a[i] XOR a[i 1] 。 移除数组的最后一个元素。 返回一个大小为 q 的数组 answer其中 answer[i] 表示查询 i 的答案。 示例 1 输入 nums [2,8,4,32,16,1], queries [[0,2],[1,4],[0,5]] 输出 [12,60,60] 解释 在第一个查询中nums[0..2] 的子数组分别是 [2], [8], [4], [2, 8], [8, 4], 和 [2, 8, 4]它们的异或值分别为 2, 8, 4, 10, 12, 和 6。查询的答案是 12所有异或值中的最大值。 在第二个查询中nums[1..4] 的子数组中最大的异或值是子数组 nums[1..4] 的异或值为 60。 在第三个查询中nums[0..5] 的子数组中最大的异或值是子数组 nums[1..4] 的异或值为 60。 示例 2 输入 nums [0,7,3,2,8,5,1], queries [[0,3],[1,5],[2,4],[2,6],[5,6]] 输出 [7,14,11,14,5] 解释 下标 nums[li..ri] 最大异或值子数组 子数组最大异或值 0 [0, 7, 3, 2] [7] 7 1 [7, 3, 2, 8, 5] [7, 3, 2, 8] 14 2 [3, 2, 8] [3, 2, 8] 11 3 [3, 2, 8, 5, 1] [2, 8, 5, 1] 14 4 [5, 1] [5] 5 提示 1 n nums.length 2000 0 nums[i] 231 - 1 1 q queries.length 105 queries[i].length 2 queries[i] [li, ri] 0 li ri n - 1classSolution{public:vectorintmaximumSubarrayXor(vectorintns,vectorvectorintq){int nns.size(),mq.size();vectorintans;for(int i0;im;i){int lq[i][0],rq[i][1],resns[r];for(int xl;xr;x){resmax(res,ns[x]);for(int yx1;yr;y){resmax(res,ns[x]^ns[y]);}}ans.push_back(res);}returnans;}};
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

InfluxDB时序数据错乱、时间漂移彻底修复 2026/9/1 16:54:50

InfluxDB时序数据错乱、时间漂移彻底修复

InfluxDB时序数据错乱、时间漂移彻底修复技术栈:Kubernetes v1.32.13 Rocky Linux 8.6 InfluxDB 2.7.x Containerd 1.7.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案InfluxDB时序数据错乱、时间漂移彻底修复操作环境K8s 集群 3…

阅读更多 →
C# MES源码深度解析:技术选型、工单流转与落地实践 2026/9/1 16:54:50

C# MES源码深度解析:技术选型、工单流转与落地实践

简介:这是一套基于C#开发的生产制造执行系统(MES)完整源码,面向制造业信息化开发者、工业软件工程师及高校智能制造方向学习者,聚焦解决车间级生产过程管控、工序追溯与权限精细化管理等核心问题。资源包共825个文件&a…

阅读更多 →
小白程序员入门大模型:OpenClaw vs Hermes 多 Agent 架构深度解析 2026/9/1 16:54:50

小白程序员入门大模型:OpenClaw vs Hermes 多 Agent 架构深度解析

本文深入探讨了多 Agent 架构在 AI 中的应用,对比了 OpenClaw 和 Hermes 的实现路径。多 Agent 架构通过将复杂任务拆分为多个独立执行的单元,有效解决了单 Agent 在长序列处理、工具调用、错误隔离等方面的瓶颈。文章详细解析了多 Agent 的定义、使用动…

阅读更多 →
Claude Code 与 Codex 双向桥接:本地文件协议实现 AI Agent 协作 2026/9/1 16:54:50

Claude Code 与 Codex 双向桥接:本地文件协议实现 AI Agent 协作

做了多年 AI 编程工具落地,我最大的感受是:单个 CLI 再强,也只是“一个人干活”。真正贴近团队协作时,Claude Code 负责全局重构和方案设计,Codex 负责快速写测试和命令执行,两个工具各有长板。问题在于&am…

阅读更多 →
机器人规模化部署:从ROS 2架构到自动化运维的工程实践 2026/9/1 16:54:50

机器人规模化部署:从ROS 2架构到自动化运维的工程实践

机器人规模化落地,早已不是实验室里展示几个酷炫动作那么简单。它意味着从单台样机到成千上万台稳定运行的生产力工具,从定制化调试到标准化部署,从核心算法突破到整个供应链的成熟。这背后是一场涉及硬件选型、软件架构、生产测试、部署运维…

阅读更多 →
逻辑先行:贾子认知免疫理论——从证伪主义的逻辑破产到宣称范式的识别与免疫 2026/9/1 16:51:49

逻辑先行:贾子认知免疫理论——从证伪主义的逻辑破产到宣称范式的识别与免疫

逻辑先行:认知免疫理论 ——从证伪主义的逻辑破产到宣称范式的识别与免疫 摘要 本文从一个简单而致命的逻辑审查出发:波普尔证伪主义的核心命题"可证伪的才是科学"本身不可证伪,按其自身标准不属于科学。这不是一个需要翻遍文献才…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞