掘友等级
获得徽章 0
#刷题交流# 优惠券优先级计算,初始化数据结构:使用字典或列表来存储优先级关系。
遍历记录:对于每条记录,更新优先级关系。
拓扑排序:使用队列或深度优先搜索(DFS)进行拓扑排序,确保字典序最小。
#刷题交流# 数字翻译成字符串定义状态:我们可以使用一个数组 dp,其中 dp[i] 表示前 i 位数字的翻译方法数。
初始化:dp[0] = 1,表示空字符串有一种翻译方法。
状态转移:
如果当前数字可以单独翻译成一个字母(即数字在0到9之间),则 dp[i] += dp[i-1]。
如果当前数字和前一个数字可以组合翻译成一个字母(即组合数字在10到25之间),则 dp[i] += dp[i-2]。
结果:dp[n] 就是整个数字的翻译方法数,其中 n 是数字的长度。
#刷题交流# 不同子串的排序,遍历字符串 s 的所有可能的子串,并将它们添加到集合中。
将集合中的子串转换为列表,并按字典序排序。
检查列表的长度是否大于等于 k,如果是,则返回第 k 小的子串;否则返回 "NO ANSWER"。
#刷题交流# 飞机大战游戏策略
排序:首先对敌人的血量进行降序排序。这样我们可以优先处理血量较高的敌人,从而更有效地使用A键。
处理血量大于1的敌人:对于血量大于1的敌人,优先使用A键(每次发射两枚子弹,每枚子弹造成1点伤害)。
处理血量为1的敌人:对于血量为1的敌人,直接使用B键秒杀。
#刷题交流# 超辣火锅挑战
初始化:创建一个列表来存储每个人的耐受值,并创建一个列表来存储每个人的编号。
模拟过程:
从第1个人开始,顺时针数k个,跳过已经离席的人。
每次数到一个人时,减少他的耐受值。
如果某个人的耐受值变为0,记录他的编号并将其从列表中移除。
循环:重复上述过程,直到所有人都离席。
#刷题交流# 最少正方形划分
初始化:从 m×n 的地皮开始。
选择最大正方形:选择当前地皮中最大的正方形区域。
递归划分:将这个正方形区域从地皮中移除,剩下的部分继续进行同样的划分。
终止条件:当整个地皮被完全覆盖时,递归结束
#刷题交流# 字符串变换问题,遍历所有可能的 x 和 y 组合。
对于每个组合,生成矩阵并计算连通块数量。
记录并比较连通块数量,返回最小的那个。
#刷题交流# 相似密码问题
计算每个字符的差异:对于 s 和 t 中的每个字符,计算它们之间的差异。例如,如果 s[i] 是 'a' 而 t[i] 是 'c',那么差异就是 2。累加差异:将所有字符的差异累加起来,得到总的操作次数。
判断操作次数是否在允许范围内:如果总的操作次数小于等于 k,则返回 True,否则返回 False。
#刷题交流# 进制数字相乘问题,字符到数字的映射:创建一个字典,将37进制的字符映射到对应的数字。
37进制到10进制的转换:将输入的37进制字符串转换为10进制整数。
乘法运算:在10进制下进行乘法运算。
10进制到37进制的转换:将乘法结果转换回37进制字符串。
#刷题交流# 找到独一无二的糖葫芦串,字典:用于存储每个糖葫芦及其甜度。集合:用于快速检查糖葫芦是否独一无二。
下一页