2026.6.7每日一题/基础巩固 ​上了一周的班新工作的氛围和同事还不错而且新工作要学的东西太多了也暂时没制定好比较稳定的学习计划虽然领导给了很多的学习时间但学起来还是太迷茫了很在意能不能达到领导的要求迷茫ing…前一天晚上和高中同学去一起爬山去了吃了宵夜结果第二天体重居然还降下来了目标的体重近在咫尺说回正题今天把洛谷的入门和新手题重新巩固了一下打算先把python一点一点捡起来刷算法题对我来说可能更多是兴趣驱动不知道纯凭兴趣能坚持多久先总结下今天的题目leetcode2461. 长度为 K 子数组中的最大和要求子数组中所有元素都必须各不相同这道题我认为可以分为两个点一个是定长滑动窗口一个是哈希计数创建一个会计数的哈希表用cnt defaultdict(int)这样len(cnt)就可以表示表里现在一共有多少个不同的数字键。定长滑动窗口问题解决方法简单说可以分成三个步骤入-更新答案-出用enumerate关键字可以同时获取第i个元素对应的值例如for i, x in enumerate(nums)sxx是元素的值把前i个元素的值加进和s里面更新答案就用max(s, ans)iflen(cnt)k:ansmax(ans,s)离开窗口与加入窗口同理区别就是出的是左端点也就是i-k1outnums[i-k1]注意出去的时候要判断要出去是不是0如果是0那就直接删掉它ifcnt[out]0:delcnt[out]关于哈希表假设现在有一组数字 [9, 2, 9] 依次进入窗口数字 9 进入窗口哈希表的状态{ 9: 1 }把 9 作为键存进去次数值初始化为 1。数字 2 进入窗口哈希表的状态{ 9: 1, 2: 1 }另一个数字 9 进入窗口哈希表的状态{ 9: 2, 2: 1 }在 Python 中普通的字典dict在你访问一个不存在的键时会报错KeyError。为了刷题方便我们通常用collections模块里的defaultdict(int)好处是如果访问的数字不在表里它不会报错而是自动帮我们把次数初始化为 0。​