掘友等级
获得徽章 0
#刷题交流# 创建一个布尔数组 dp,其中 dp[i] 表示是否可以用给定的货币面值组合出总价 i
dp[0] = true,因为总价为 0 时不需要任何货币
#刷题交流# 从第一个盘子开始,遍历整个数组。
寻找连续序列:检查当前盘子是否与前一个盘子连续。如果是连续的,继续检查下一个盘子,直到不再连续。
#刷题交流# 初始化一个哈希表,用于记录每个数字出现的次数。
遍历数组,对于每个数字 num:
计算 complement = k - num,即与当前数字配对的另一个数字。
检查哈希表中是否存在 complement:
如果存在,说明找到了一对满足条件的数对,将这对数对的数量加到结果中。
更新哈希表中 num 的出现次数。
#刷题交流# 定义两个指针 left 和 right,分别表示滑动窗口的左右边界。初始时,两个指针都指向数组的第一个元素。
扩展窗口:不断移动 right 指针,将新的水果类型加入窗口。
维护窗口:如果窗口中的水果类型超过两种,移动 left 指针,直到窗口中只剩下两种水果类型。
#刷题交流# 学习技能时间计算,创建一个列表 current_attributes 来记录当前的体力、智力和武力值,初始值为 [0, 0, 0]。
遍历天数:从第1天开始,遍历每一天的 growup 数组,更新 current_attributes。
检查技能要求:在每一天结束时,检查是否满足某个技能的学习要求。如果满足,记录当前天数并标记该技能为已学习。
返回结果:如果某个技能在所有天数结束后仍未满足要求,则返回 -1。
#刷题交流# 四则运算解析数字:如果当前字符是数字,继续读取后续字符直到遇到非数字字符,然后将完整的数字压入操作数栈。
运算符:如果当前字符是运算符,比较其与运算符栈顶元素的优先级:
如果当前运算符优先级低于或等于栈顶运算符,弹出栈顶运算符并进行计算,然后将结果压入操作数栈。
否则,将当前运算符压入运算符栈。
括号:如果遇到左括号(,直接压入运算符栈;如果遇到右括号),弹出运算符栈中的运算符并进行计算,直到遇到左括号(。
#刷题交流# 环形数组最大子数组
计算整个数组的和。
使用Kadane算法计算数组的最大子数组和。
使用Kadane算法计算数组的最小子数组和。
计算跨越数组末端的最大子数组和。
返回上述两种情况中的较大值
#刷题交流# 小k的不同挑战
统计出现次数:使用 Counter 统计每个数字的出现次数。
找到最小只出现一次的数字:遍历 Counter 的结果,找到出现次数为1的最小数字。
返回结果:如果没有找到符合条件的数字,返回 -1。
#刷题交流# 字母矩阵问题,对于每个子矩阵,遍历其中的所有字母,并将其加入到一个集合中。
如果在加入过程中发现某个字母已经在集合中,说明这个子矩阵不满足条件,可以跳过。
如果所有字母都成功加入集合,说明这个子矩阵满足条件,计数器加一。
#刷题交流# 照明灯安装计划
排序位置数组:首先对位置数组进行排序,这样可以方便我们计算相邻位置之间的距离。
二分查找:需要找到一个最大的最小距离 d,使得可以在 k 个位置中安装照明灯,并且任意两个照明灯之间的距离至少为 d。
下一页