LeetCode刷题
文章平均质量分 77
绅士同萌
这个作者很懒,什么都没留下…
展开
-
Day12 滑动窗口最大值+前 K 个高频元素
给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值示例 2:输入:nums = [1], k = 1输出:[1]原创 2023-05-22 22:17:39 · 67 阅读 · 0 评论 -
Day11 有效的括号+删除字符串中的所有相邻重复项+逆波兰表达式求值
例如:4 + 13 / 5,这就是中缀表达式,计算机从左到右去扫描的话,扫到13,还要判断13后面是什么运算符,还要比较一下优先级,然后13还和后面的5做运算,做完运算之后,还要向前回退到 4 的位置,继续做加法,你说麻不麻烦!那么将中缀表达式,转化为后缀表达式之后:[“4”, “13”, “5”, “/”, “+”] ,就不一样了,计算机可以利用栈来顺序处理,不需要考虑优先级了。第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。原创 2023-05-20 20:18:37 · 51 阅读 · 1 评论 -
Day10 用栈实现队列+用队列实现栈
ArrayDeque是基于数组实现的双端队列,它提供了较好的随机访问性能和一致的高效性能。ArrayDeque在队列的两端(开头和末尾)都能提供高效的插入和删除操作。它可以用作Queue和Deque的实现类,但在Deque场景下,ArrayDeque的性能更好,因为它支持在两端快速插入和删除元素,如。LinkedList是基于双向链表实现的,它提供了较好的插入和删除元素的性能,尤其在队列的头部和尾部。如果需要频繁在队列两端进行插入和删除操作,使用ArrayDeque作为Deque的实现类更为合适。原创 2023-05-19 14:34:49 · 30 阅读 · 1 评论 -
Day9 实现 strStr()
题目链接](https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/原创 2023-05-19 14:33:31 · 21 阅读 · 1 评论 -
Day8 反转字符串+反转字符串Ⅱ+替换空格+翻转字符串里的单词+左旋转字符串 - 副本
对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。对于字符串,我们定义两个指针(也可以说是索引下标),一个从字符串前面,一个从字符串后面,两个指针同时向中间移动,并交换元素。遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。如何跳过中间连续的空格。如何修剪掉两端空格;如何把单词反转过来;原创 2023-05-17 14:32:25 · 40 阅读 · 1 评论 -
Day7 四数相加Ⅱ+赎金信+三数之和+四数之和
注意三数之和的双指针求和 和剪枝的逻辑四数之和 会int溢出,改成long。原创 2023-05-16 13:54:02 · 89 阅读 · 1 评论 -
Day6 有效的字母异位词+两个数组的相交+快乐数 +两数之和
哈希表会出现哈希碰撞。哈希碰撞有两种解决方法, 拉链法和线性探测法。原创 2023-05-15 12:57:45 · 31 阅读 · 1 评论 -
Day4 两两交换链表中的节点+删除链表的倒数第N个节点+链表相交+环形链表Ⅱ
其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。[[19.删除链表的倒数第N个节点1.png]]!fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢。先拿n为1的情况来举例,意味着fast指针在环形里转了一圈之后,就遇到了 slow指针了。,n为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数A。原创 2023-05-14 16:15:12 · 52 阅读 · 0 评论 -
Day3 移除链表元素+设计链表+反转链表(简单记录)
设置虚拟头结点–>不用单独处理头结点。原创 2023-05-14 16:08:55 · 46 阅读 · 1 评论 -
Day2 有序数组的平方+长度最小的子数组+螺旋矩阵II
所以数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间。第一种想法,2层循环:第一层for循环控制区间的起始位置,第二层while循环控制区间的终止位置。这些集合里面的所有的长度,再取一个最小的。分析:如果第一层循环是循环的窗口的起点位置,终止位置需要一个一个往后移,去搜集所有。,我们再去移动起始位置,这样就实现了动态调整起始位置,来去收集不同长度区间里面的和。的话,说明这是符合条件的一个集合,我们收集它的长度之后,起点位置就可以向后移动了。,从而得出我们要想的结果。里面的循环条件,每次。原创 2023-05-11 20:07:53 · 37 阅读 · 1 评论 -
Day1 二分查找+移除元素
代码随想录LeetCode刷题Day1原创 2023-05-10 15:36:35 · 217 阅读 · 2 评论