获得徽章 21
#刷题交流# 打卡《小S的倒排索引》
解题思路:创建哈希表:使用对象 map 来存储数组 a 中的元素,这样可以快速查找。查找交集:遍历数组 b,检查每个元素是否在 map 中,如果在,则将其添加到交集数组 intersection 中,并将其从 map 中移除(设为 false)。排序:使用 sort 方法对交集数组进行从大到小的排序。
#刷题交流# 打卡《游戏排名第三大的分数》
刷题展示:去重:let uniqueNums = [...new Set(nums)]; 使用 Set 去除重复元素。排序:uniqueNums.sort((a, b) => b - a); 对数组进行降序排序。返回结果:根据数组长度返回第三大的元素或最大的元素。
#刷题交流# 打卡《不同整数的计数问题》
刷题展示:替换非数字字符:遍历字符串 word,将所有非数字字符替换为空格。提取整数:将替换后的字符串按空格分割,提取出所有的整数。去除前导零:对于每个提取出的整数,去除前导零。统计不同整数:使用集合(Set)来存储不同的整数,最后返回集合的大小。
#刷题交流# 打卡《组成字符串ku的最大次数》
刷题展示:字符计数:我们需要统计字符串中每个字符的出现次数,特别是字符 'k' 和 'u'。忽略大小写:在统计时,将所有字符转换为小写(或大写),以便统一处理。计算最大组合数:字符 'k' 和 'u' 的组合数取决于这两个字符中出现次数较少的那个。
#刷题交流# 打卡《小D的 `abc` 变换问题》
刷题展示:定义 transform 函数,在 solution 函数中调用 transform 函数,返回最终结果
#刷题交流# 打卡《小U的数字插入问题》
刷题展示:将数字转换为字符串:为了方便插入和比较,将数字 a 和 b 转换为字符串。*遍历字符串 a**:尝试将 b 插入到 a 的每一个可能的位置,并比较生成的新数字,找到最大的那个。返回最大结果:将找到的最大结果转换回数字并返回。
#刷题交流# 打卡《DNA序列编辑距离》
刷题展示:使用一个二维数组 dp,其中 dp[i][j] 表示将 dna1 的前 i 个字符转换成 dna2 的前 j 个字符所需的最少编辑步骤。dp[0][j] 表示将空字符串转换成 dna2 的前 j 个字符,需要 j 次插入操作。dp[i][0] 表示将 dna1 的前 i 个字符转换成空字符串,需要 i 次删除操作。状态转移:如果 dna1[i-1] == dna2[j-1],则 dp[i][j] = dp[i-1][j-1],因为不需要任何编辑操作。否则,dp[i][j] 可以通过以下三种操作中的最小值得到:插入:dp[i][j-1] + 1删除:dp[i-1][j] + 1替换:dp[i-1][j-1] + 1最终结果:dp[m][n] 就是将 dna1 转换成 dna2 所需的最少编辑步骤,其中 m 和 n 分别是 dna1 和 dna2 的长度。
#刷题交流# 打卡《环形数组中的最大贡献值》
刷题展示:计算最短距离:使用 min(abs(i - j), n - abs(i - j)) 来计算 dist(i, j),遍历所有下标对:使用双重循环遍历所有可能的下标对 (i, j),并确保 i 和 j 不相同,计算贡献值并更新最大值:对于每一对 (i, j),计算 f(i, j) 并更新 max_contribution。
#刷题交流# 打卡《比赛配对问题》
刷题展示:初始化pair_count 变量,用于记录总的配对次数。循环处理每一轮比赛,偶数队伍数的情况,奇数队伍数的情况,返回结果。
#刷题交流# 打卡《最大矩形面积问题》
刷题展示:初始化 max_area:用于记录最大面积,外层循环遍历 k,从 1 到 n。内层循环遍历数组:计算以每个元素为起点的 k 个相邻元素的最小值。计算矩形面积:使用 min 函数找到最小值,然后乘以 k,更新最大面积:使用 max 函数更新最大面积
下一页