- 博客(15)
- 收藏
- 关注
原创 Leetcode每日一题 540. 有序数组中的单一元素
由于除单一元素外,元素都会成对出现,所以每次比较相邻的两个数,相等则选择新的两个数。给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。请你找出并返回只出现一次的那个数。
2024-11-10 12:36:45
500
原创 Leetcode每日一题 3242. 设计相邻元素求和服务
int diagonalSum(int value) 返回在 grid 中与 value 对角线相邻的元素之和,对角线相邻指的是与 value 在左上、右上、左下或右下的元素。int adjacentSum(int value) 返回在 grid 中与 value 相邻的元素之和,相邻指的是与 value 在上、左、右或下的元素。设置私有变量Grid并以grid初始化,首先遍历寻找不重复值value,然后判断相邻元素/对角线相邻元素是否位于矩阵中,用变量sum求和并返回所求的值。
2024-11-09 13:49:18
388
原创 Leetcode每日一题 3255. 长度为 K 的子数组的能量值 II
相同,记录上一次符合题意的子数组的起点下标位置last_idx,如果起始位置位于当前位置i的前k个位置之内,说明当前考虑的子数组的索引0:l部分是连续递增的,其中l = k-1-i+last_idx,只需要考虑索引l:k的部分。请你返回一个长度为 n - k + 1 的整数数组 results ,其中 results[i] 是子数组 nums[i…(i + k - 1)] 的能量值。给你一个长度为 n 的整数数组 nums 和一个正整数 k。注:示例代码将last_idx==i-1单独处理。
2024-11-07 11:07:01
555
原创 Leetcode每日一题 3254. 长度为 K 的子数组的能量值 I
记录上一次符合题意的子数组的起点下标位置last_idx,如果起始位置位于当前位置i的前k个位置之内,说明当前考虑的子数组的索引0:l部分是连续递增的,其中l = k-1-i+last_idx,只需要考虑索引l:k的部分。请你返回一个长度为 n - k + 1 的整数数组 results ,其中 results[i] 是子数组 nums[i…(i + k - 1)] 的能量值。给你一个长度为 n 的整数数组 nums 和一个正整数 k。注:示例代码将last_idx==i-1单独处理。
2024-11-06 14:06:01
581
原创 Leetcode每日一题 3222. 求出硬币游戏的赢家
Alice 和 Bob 正在玩一个游戏。每一轮中,Alice 先进行操作,Bob 后操作。每次操作中,玩家需要拿出价值 总和 为 115 的硬币。如果一名玩家无法执行此操作,那么这名玩家 输掉 游戏。给你两个 正 整数 x 和 y ,分别表示价值为 75 和 10 的硬币的数目。由于每次取出的硬币数量是固定的,只需要计算硬币可以分成多少份即可。两名玩家都采取 最优 策略,请你返回游戏的赢家。
2024-11-05 09:03:17
266
转载 Leetcode每日一题 633. 平方数之和
由于a*a<=c,可以将范围缩小为[0,sqrt©], 判断b是否为整数,是则输出true,没有满足条件的a,b则输出false。给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a。
2024-11-04 19:35:38
79
原创 Leetcode每日一题 3226. 使两个整数相等的位更改次数
通过除2取余依次获得两个数对应的二进制位的数,如果两个数不相同,可以通过修改满足题意则计数加一,否则返回-1;最终返回-1或计数结果即可。你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。##3226. 使两个整数相等的位更改次数。给你两个正整数 n 和 k。
2024-11-02 16:49:24
273
转载 Leetcode每日一题 3259. 超级饮料的最大强化能量
这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而,如果从一种能量饮料切换到另一种,你需要等待一小时来梳理身体的能量体系(在那个小时里你将不会获得任何强化能量)。考虑使用动态规划维护一个二维数组d,考虑到除第一次外,每次取饮料只有两种可能,从当前类别取一瓶或者从另一类别取前一瓶。返回在接下来的 n 小时内你能获得的 最大 总强化能量。注意 你可以选择从饮用任意一种能量饮料开始。##3259. 超级饮料的最大强化能量。
2024-11-01 19:25:43
95
原创 Leetcode每日一题 3216. 交换后字典序最小的字符串
如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。从0开始依次比较字符串相邻的两个字符,如果前一个大于后一个则交换并输出,如果不存在这样的情况,输出原串。##3216. 交换后字典序最小的字符串。
2024-10-30 14:13:41
425
转载 Leetcode每日一题 3211. 生成不含相邻零的二进制字符串
考虑使用位运算,长度为n的二进制数的表示范围为0~2^n-1,只要保证当前考虑的数d,不存在相邻两个数为0的情况,可以通过取反d得到t,检验t&&(t>>1)是否为1来确定是否有相邻的0.具体做法:首先设掩码mask=2^n-1,依次与i异或,得到取反后的i(t),检验t是否存在相邻的0,不存在则转换为字符串并压入栈res,最后返回res。中包含 至少 一个 “1”,则称 x 是一个 有效 字符串。返回所有长度为 n 的 有效 字符串,可以以任意顺序排列。如果一个二进制字符串 x 的所有长度为 2 的。
2024-10-29 21:41:45
111
转载 Leetcode每日一题 685. 冗余连接 II
对于给定的有向图,存在一条附加的边,导致图中出现了环或存在节点入度为2.如果相邻的两个顶点具有共同的祖先,则说明图中出现了环;具体做法,初始化parent数组,parent[i] = i,则入度为2的节点的parent会被修改为另一个父节点,同时通过并查集检查环,从而发现附加的边。输入一个有向图,该图由一个有着 n 个节点(节点值不重复,从 1 到 n)的树及一条附加的有向边构成。每个元素是一对 [ui, vi],用以表示 有向 图中连接顶点 ui 和顶点 vi 的边,其中 ui 是 vi 的一个父节点。
2024-10-28 18:48:32
75
转载 Leetcode每日一题 684. 冗余连接
遍历每一条边,判断这条边连接的两个顶点是否属于相同的连通分量。如果两个顶点属于不同的连通分量,则说明在遍历到当前的边之前,这两个顶点之间不连通,因此当前的边不会导致环出现,合并这两个顶点的连通分量。如果两个顶点属于相同的连通分量,则说明在遍历到当前的边之前,这两个顶点之间已经连通,因此当前的边导致环出现,为附加的边,将当前的边作为答案返回。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。如果一棵树有 n 个节点,则这棵树最多有 n−1 条边,本题的图由于冗余连接,边数为n。
2024-10-27 17:44:55
88
转载 Leetcode每日一题 3181. 执行操作可获得的最大总奖励 II
如果 rewardValues[i] 大于 你当前的总奖励 x,则将 rewardValues[i] 加到 x 上(即 x = x + rewardValues[i]),并 标记 下标 i。依次考虑每个奖励值,当目前的奖励值j小于考虑的奖励值rewardValues[i]时,将已有的可实现值复制到f1;否则,为f1[j]赋值为1并合并到f0.最后选择可以实现的最大奖励值。使用动态规划方法维护bitset:f0和f1,f0[i]==1表示总奖励i可以实现。以整数形式返回执行最优操作能够获得的 最大 总奖励。
2024-10-26 20:20:45
85
原创 Leetcode每日一题3175. 找到连续赢 K 场比赛的第一位玩家
考虑剩余情况,每次的获胜者只会是参与比较的两位玩家,获胜者之后通过循环数组与其他玩家比较,去除与自己比较的情况,以连续赢下k场为终止条件。给你一个长度为 n 的整数数组 skills 和一个 正 整数 k ,其中 skills[i] 是第 i 位玩家的技能等级。有 n 位玩家在进行比赛,玩家编号依次为 0 到 n - 1。队列中最前面两名玩家进行一场比赛,技能等级 更高 的玩家胜出。比赛后,获胜者保持在队列的开头,而失败者排到队列的末尾。这个比赛的赢家是 第一位连续 赢下 k 场比赛的玩家。
2024-10-24 13:17:00
221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1