随笔分类 - 算法-刷题题目 / 力扣+acwing
摘要:题目描述 给你一个整数数组 nums ,你可以在 nums 上执行下述操作 任意次 : 如果 gcd(nums[i], nums[j]) > 1 ,交换 nums[i] 和 nums[j] 的位置。其中 gcd(nums[i], nums[j]) 是 nums[i] 和 nums[j] 的最大公因数
阅读全文
摘要:题目描述 你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。 如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击
阅读全文
摘要:题目 题目链接 题目描述 有 n 个人排成一个队列,从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights ,每个整数 互不相同,heights[i] 表示第 i 个人的高度。 一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的,第 i 个人能看
阅读全文
摘要:1937. 扣分后的最大得分 给你一个 m x n 的整数矩阵 points (下标从 0 开始)。一开始你的得分为 0 ,你想最大化从矩阵中得到的分数。 你的得分方式为:每一行 中选取一个格子,选中坐标为 (r, c) 的格子会给你的总得分 增加 points[r][c] 。 然而,相邻行之间被选
阅读全文
摘要:1931. 用三种不同颜色为网格涂色 给你两个整数 m 和 n 。构造一个 m x n 的网格,其中每个单元格最开始是白色。请你用 红、绿、蓝 三种颜色为每个单元格涂色。所有单元格都需要被涂色。 涂色方案需要满足:不存在相邻两个单元格颜色相同的情况 。返回网格涂色的方法数。因为答案可能非常大, 返回
阅读全文
摘要:遇到这种问题一定要变形式子 传送门: 给定 n 个石子,编号为 1∼n。 其中第 i 个石子的价值为 ai。 你需要从中任意挑选若干个石子,并将挑选好的石子按照编号从小到大的顺序排成一排。 选中的石子在排好序后需要满足,对于任意两个相邻的石子(不妨设它们的编号为 x,y,x−y=ax−ay 均成立。
阅读全文
摘要:给定一个长度为 nn 的数组 v1,v2,…,vn 初始时,数组中的所有元素都为 0。 接下来,可以对该数组进行若干次如下操作 对于第 i 次操作(i 从 0 开始),你可以: 要么选择其中一个元素 v[pos],将其增加 k^i。 要么不选择任何元素,直接跳过此次操作。 你可以随时停止操作(不进行
阅读全文
摘要:5790. 查询差绝对值的最小值 视频题解 一个数组 a 的 差绝对值的最小值 定义为:0 <= i < j < a.length 且 a[i] != a[j] 的 |a[i] - a[j]| 的 最小值。如果 a 中所有元素都 相同 ,那么差绝对值的最小值为 -1 。 比方说,数组 [5,2,3,
阅读全文
摘要:1574. 删除最短的子数组使剩余数组有序 给你一个整数数组 arr ,请你删除一个子数组(可以为空),使得 arr 中剩下的元素是 非递减 的。 一个子数组指的是原数组中连续的一个子序列。 请你返回满足题目要求的最短子数组的长度。 示例 1: 输入:arr = [1,2,3,10,4,2,3,5]
阅读全文
摘要:题目链接 给你一个二进制串 s (一个只包含 0 和 1 的字符串),我们可以将 s 分割成 3 个 非空 字符串 s1, s2, s3 (s1 + s2 + s3 = s)。 请你返回分割 s 的方案数,满足 s1,s2 和 s3 中字符 '1' 的数目相同。 由于答案可能很大,请将它对 10^9
阅读全文
摘要:给你两个字符串 s 和 p ,其中 p 是 s 的一个 子序列 。同时,给你一个元素 互不相同 且下标 从 0 开始 计数的整数数组 removable ,该数组是 s 中下标的一个子集(s 的下标也 从 0 开始 计数)。 请你找出一个整数 k(0 <= k <= removable.length
阅读全文
摘要:题目连接 题目讲解 给定一个初始长度为 n 的数组 a 以及一个整数 x。 我们现在要对数组 a 进行延伸,具体方法如下: 我们从数组中的第一个元素开始,逐个遍历数组中的每个元素。 当遍历到数组中的元素 q 时,如果 q 能够被 x 整除,则在数组的末尾添加 x 个整数 q/x,并开始遍历下一个元素
阅读全文
摘要:5778. 使二进制字符串字符交替的最少反转次数 视频讲解 给你一个二进制字符串 s 。你可以按任意顺序执行以下两种操作任意次: 类型 1 :删除 字符串 s 的第一个字符并将它 添加 到字符串结尾。 类型 2 :选择 字符串 s 中任意一个字符并将该字符 反转 ,也就是如果值为 '0' ,则反转得
阅读全文
摘要:题目链接 官方题解 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1
阅读全文
摘要:题目链接 大佬链接 给你一个长度为 偶数 n 的整数数组 nums 和一个整数 limit 。每一次操作,你可以将 nums 中的任何整数替换为 1 到 limit 之间的另一个整数。 如果对于所有下标 i(下标从 0 开始),nums[i] + nums[n - 1 - i] 都等于同一个数,则数
阅读全文
摘要:5756. 两个数组最小的异或值之和 视频链接 给你两个整数数组 nums1 和 nums2 ,它们长度都为 n 。 两个数组的 异或值之和 为 (nums1[0] XOR nums2[0]) + (nums1[1] XOR nums2[1]) + ... + (nums1[n - 1] XOR n
阅读全文
摘要:传送门 视频传送门 给你一个 m x n 的整数矩阵 grid 。 菱形和 指的是 grid 中一个正菱形边界上的元素之和。本题中的菱形必须为正方形旋转45度,且四个角都在一个格子当中。下图是四个可行的菱形,每个菱形和应该包含的格子都用了相应颜色标注在图中。 注意,菱形可以是一个面积为 0 的区域,
阅读全文
摘要:传送门 视频传送门 给你一个整数 hoursBefore ,表示你要前往会议所剩下的可用小时数。要想成功抵达会议现场,你必须途经 n 条道路。道路的长度用一个长度为 n 的整数数组 dist 表示,其中 dist[i] 表示第 i 条道路的长度(单位:千米)。另给你一个整数 speed ,表示你在道
阅读全文
摘要:题目链接 解析链接 给你两个字符串 s 和 t ,请你通过若干次以下操作将字符串 s 转化成字符串 t : 选择 s 中一个 非空 子字符串并将它包含的字符就地 升序 排序。比方说,对下划线所示的子字符串进行操作可以由 "14234" 得到 "12344" 。 如果可以将字符串 s 变成 t ,返回
阅读全文
摘要:题目链接 解析链接 给你一个整数数组 nums 和一个整数 k 。区间 [left, right](left <= right)的 异或结果 是对下标位于 left 和 right(包括 left 和 right )之间所有元素进行 XOR 运算的结果:nums[left] XOR
阅读全文