- 博客(13)
- 收藏
- 关注
原创 LeetCode 30. 串联所有单词的子串
我们用一个字典cnt来记录当前窗口中每个单词出现的次数,用overload记录当前窗口中超出目标次数的单词种类数(注意:这里不是超出数量,而是种类。当某个单词在窗口中出现的次数等于目标次数时,我们就认为这个单词刚好,如果超过了,那么overload就会增加)。对于每个起始位置start,我们维护一个滑动窗口,窗口的移动步长是word_len(每次移动一个单词)。计算每个单词的长度word_len,以及整个串联子串的长度window_len(即word_len * len(words))。
2025-06-11 22:36:09
303
原创 代码随想录算法训练营Day11|栈与队列Part2
遍历逆波兰表达式存储至栈,遇到运算符,则pop两个数值参与运算(先pop出的值放在运算符的后面参与运算),运算后的结果再存储至栈,循环以上操作。注意:当滑动窗口向后移动时,需要比较【单调队列中的首值】是否和【滑动窗口后移前的首值】相同,若相同,则需将单调队列中的首值popleft出。对元素出现的频率进行排序,可利用map(key存储元素,value存储元素出现次数)进行存储。比较,去除队列中比当前值小的值,保证队列永远是单减的。,大顶堆是根节点最大的元素,小顶堆是根节点最小的元素。数据结构,该类数据结构。
2025-06-09 22:42:52
224
原创 代码随想录算法训练营Day10|栈与队列Part1
本文摘要: 总结了栈与队列的基本概念及Python实现方式。栈(先进后出)可用list或deque实现,队列(先进先出)推荐使用deque以提高效率。通过LeetCode三道经典题目展示了栈与队列的应用场景:232题用双栈模拟队列操作,225题用双端队列实现栈功能,20题利用栈结构解决括号匹配问题。文中详细分析了各题解题思路,并提供了Python代码实现,特别注意了不同数据结构操作的时间复杂度差异。文章还介绍了Python列表切片操作技巧。
2025-06-01 16:10:13
461
原创 MacBook(M3) 安装Conda并创建虚拟环境的过程记录
Step4:键盘连续按 enter 直至出现询问【是否同意协议】,然后终端中输入 ‘yes’,接着按 enter 键继续安装,最后会再询问 是否现在在终端命令中初始化conda命令,输入’yes’结束安装。Step5:重启终端,命令前出现base标志,终端输入’conda -V’,回车返回conda版本,即安装成功。但在安装步骤的最后一步,【摘要】提示【安装失败:安装器遇到一个错误,导致安装失败】,如下图所示。笔者没有找到原因,搜索发现可能是Mac系统问题,遂更换下载版本。查看本地已有那些虚拟环境。
2025-05-13 00:27:07
871
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人