上岸算法 发表于 2022-5-4 23:06:48

上岸算法LeetCode Weekly Contest 291解题报告

本帖最后由 上岸算法 于 2022-5-5 00:11 编辑

【 NO.1 移除指定数字得到的最大结果】
解题思路

可以使用 BigInteger 来比较大小。

代码展示



【 NO.2 必须拿起的最小连续卡牌数】

解题思路

题意即求相距最近的两个等值元素的距离,遍历一次,记录每个值上一次出现的位置即可。

代码展示



【 NO.3 含最多 K 个可整除元素的子数组】

解题思路

定义一个 SubSeq 类,实现如下几个方法即可用 HashSet 统计数量。

hashCode 计算哈希值
check 检查是否满足最多有 k 个能被 p 整除的元素
equals 检查是否相等

代码展示



【 NO.4 字符串的总引力】

解题思路

定义 f 表示以第 i 个字符结尾的子串的引力总和,再定义 pos 表示字符 i 上一次出现的位置。

则有 f = f + (i - 1 - pos])

因为以 i 结尾的子串中,pos] + 1 到 i 之间的子串都会多出一个字符 charAt,而其他的子串的总引力与以 i - 1 结尾的子串的总引力相等。

代码展示


页: [1]
查看完整版本: 上岸算法LeetCode Weekly Contest 291解题报告