获得徽章 16
捕鱼人
捕鱼人
捕鱼人
#刷题交流# 打卡第十七天:[最佳人员]
定义性格类型的差异,如果某对性格类型是不兼容的(如 AE, BD 等),我们会返回 Infinity 作为该维度的匹配差异。计算每个士兵与目标性格密码的差异值,如果某个维度不匹配,我们会直接跳过该士兵。
找出差异值最小的士兵,如果多个士兵匹配度相同,按其在 array 中的顺序返回。
展开
评论
#刷题交流# 打卡第十五天:[a替换函数]
使用正则表达式 /a/g 来匹配所有小写字母 a,其中 g 表示全局替换。每找到一个 a,将其替换为 "%100"。
1
#刷题交流# 打卡第十五天:[完美偶数计数]
遍历数组 a 中的每个元素。
对每个元素检查它是否是偶数(即能被 2 整除)。
检查该偶数是否在给定的区间 [l, r] 范围内。
统计符合条件的“完美偶数”。
评论
#刷题交流# 打卡第十四天:[组成字符串ku的的最大发个数]
由于题目中明确提到字符大小写不敏感,我们可以将整个字符串转换为小写字母,这样就不需要区分大小写。由于我们只关心字符 "k" 和 "u" 的个数,可以直接统计这两个字符在字符串中出现的次数。字符 "k" 和 "u" 是组成 "ku" 字符串的关键,因此只需要统计它们的出现频率。每个 "ku" 字符串需要一个 "k" 和一个 "u",因此我们能组成的最大 "ku" 字符串的个数,必定是 "k" 和 "u" 的数量中的较小值。也就是:maxKU = min(count('k'), count('u'))
展开
评论
#刷题交流# 打卡第十三天:[小D的 `abc` 变换问题]
用一个对象 transformations 来存储每个字符的变换规则。通过一个 for 循环来执行 k 次操作。在每一次操作中,遍历当前字符串的每个字符,并使用变换规则来构建新的字符串。每次变换后,字符串 s 会被更新为新的变换后的结果。
评论
#刷题交流# 打卡第十二天:[构成特定数组的逆序拼接]
对于每个 i 从 1 到 n,我们将 n 到 i 逆序拼接。逆序的方式意味着从 n 开始逐渐减少,直到 i。将这些逆序的数字连接在一起,构成最终的数组。
评论
#刷题交流# 打卡第十一天:[观光景点组合的分问题]
核心是找到 values[i] + values[j] + i - j 的最大值,其中 i < j,可以等价转换为 (values[i] + i) + (values[j] - j) 的最大值在,遍历过程中,始终维护 values[i] + i 的最大值,对于每个新的景点,计算与之前最优景点的组合得分,同时更新最大得分和最优 values[i] + i
展开
评论
#刷题交流# 打卡第十天:[小 F 的永久代币卡回本计划]
简单的除法和向上取整
评论
#刷题交流# 补卡第九天:[超市里的货物价调整]
贪心算法,每个顾客都有一个商品需求(即一个特定的商品)。如果在货架上找到该商品并且货架未被空格子或其他顾客中断,那么该顾客就会成功购买商品。要重新排列货架商品,使得尽可能多的顾客能够顺利购买到商品。在满足顾客需求的前提下,尽量减少空格子或商品无法找到的情况。考虑到顾客的购买顺序和需求,应该优先将顾客需要的商品放置在前面,并且在顾客需要某种商品时,如果该商品还没有被售出,优先让顾客找到该商品。每个顾客会按照顺序在货架上查找商品,一旦找到该商品,顾客就离开。因此,顾客的需求顺序与货架商品的顺序匹配起来。
展开
评论
#刷题交流# 打卡第八天:[找出整型数组中占比超过一半的数]
两次遍历,第一次遍历,我们维护一个候选数字 candidate 和计数器 count,初始时候 candidate 为 null,count 为 0。遍历数组中的每个数字:如果 count 为 0,就将当前数字设为候选元素 candidate,并将 count 设置为 1。如果当前数字和候选元素 candidate 相同,增加 count。如果当前数字和候选元素 candidate 不同,减少 count。通过这种方式,我们最终会得到一个可能的候选元素,它可能是多数元素。我们再遍历一次数组,计算候选元素出现的次数,如果它出现的次数超过数组长度的一半,就返回它;否则返回 null,表示没有找到超过一半的元素。
展开
评论
#刷题交流# 打卡第七天:[创意标题匹配问题]
替换通配符,template.replace(/{.*?}/g, '.*') 会将模板中的 {} 部分替换成 .*,表示可以匹配任意内容。
使用 new RegExp('^' + regexTemplate + '$') 将模板转换为正则表达式,并确保从头到尾完全匹配。通过 titles.map 遍历每个标题,并返回 'True' 或 'False',最终通过 join(',') 连接成一个以逗号分隔的字符串。
展开
评论
#刷题交流# 打卡第六天:[小E的怪物挑战]
动态规划,小E在战斗时必须满足,当前怪物的血量和攻击力都小于小E当前的血量和攻击力。
此外,小E必须按照怪物的血量和攻击力递增的顺序来击败怪物。用一个数组 dp 来记录从怪物1到怪物i,小E最多能击败的怪物数量。dp[i] 表示小E击败了第i个怪物后的最大怪物数量。对于每个怪物,需要遍历之前的所有怪物,检查是否能够击败它。如果能击败,并且前一个怪物的血量和攻击力都小于当前怪物,并且满足战斗条件,则更新 dp[i]。最终答案是dp数组中的最大值,表示小E最多能击败的怪物数量。
展开
评论
#刷题交流# 打卡第五天:[寻找最大葫芦]
统计每个牌面值的出现次数,使用一个字典来记录每个牌面值的出现次数。这个字典的键是牌面值,值是该牌面值出现的次数。构造所有可能的“葫芦”组合,“葫芦”要求有三张相同的牌和两张相同的牌。因此,需要遍历所有牌面值的组合,查找符合条件的组合。为了符合“葫芦”的规则,必须有至少 3 张相同面值的牌和至少 2 张相同面值的牌组成 。这样我们可以通过遍历所有的牌面值,寻找满足上述条件的组合。
过滤合法的组合,对于每一组合法的“葫芦”组合,我们需要计算其总和。如果总和不超过给定的 max,则认为该组合是合法的。比较所有合法的组合,找到所有合法的“葫芦”组合后,我们需要从中选择最大的一组。牌面值的比较规则是,首先比较三张相同牌的面值(a),如果相同则比较两张相同牌的面值(b)。因此,我们需要对合法的组合按照(a, b)进行排序。如果找到了合法的组合,返回其中最优的组合(即最大的组合)。
展开
评论
下一页