摘要: 代码随想录二刷栈与队列 栈模拟队列 具体思路如下: 程序如下: class MyQueue: def __init__(self): self.stack_in = [] self.stack_out = [] def push(self, x: int) -> None: self.stack_i 阅读全文
posted @ 2024-08-05 23:02 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 代码随想录二刷字符串 看leetcode这样一道题目: 这道题若是用python库函数直接就秒了。但是那这道题就失去了本身的意义。 题目注意事项中也说了输入字符串S可能存在前导空格、尾随空格或者单词间的多个空格。所以首先是对字符串处理。去除其中的空格。这与之前去除数组中去除特定元素是一样的思路。 所 阅读全文
posted @ 2024-08-04 20:53 Bathwind_W 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 笔试查漏补缺 1:排序算法常用时间复杂度: 快速排序 快速排序的核心操作是“哨兵划分”,其目标是:选择数组中的某个元素作为“基准数”,将所有小于基准数的元素移到其左侧,而大于基准数的元素移到其右侧。具体来说,哨兵划分的流程如图所示。 选取数组最左端元素作为基准数,初始化两个指针 i 和 j 分别指向 阅读全文
posted @ 2024-08-04 12:22 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 代码随想录二刷(哈希表) 三数之和思路反正对于我来说是真的难想出来。 若这道题还是采用哈希表的思路去做,非常麻烦,并且还要考虑去重的操作。所以这道题其实用双指针,是更方便的。 具体程序如下: class Solution: def threeSum(self, nums: List[int]) -> 阅读全文
posted @ 2024-07-31 21:46 Bathwind_W 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 代码随想录二刷(链表章节) 链表就是通过指针串联在一起的线性结构,每个节点都是由一个数据域和指针域(存放下一个节点的指针)。 双链表就是每个节点中既有指向前一个节点的,也有指向后一个节点的。 循环链表就是把头和尾连起来。 性能分析如下: 下面来看下链表的具体题目: Leetcode203 这里首先要 阅读全文
posted @ 2024-07-30 19:31 Bathwind_W 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1.在 FreeRTOS 中延时函数也相对模式和绝对模式,在 FreeRTOS 中不同的模式用的函数不同,其中函数 vTaskDelay()是相对模式(相对延时函数),函数 vTaskDelayUntil()是绝对模式(绝对延时函数)。两者都会阻塞任务。具体内容可以看博客这一篇:https://ww 阅读全文
posted @ 2024-07-21 22:01 Bathwind_W 阅读(49) 评论(0) 推荐(1) 编辑
摘要: 代码随想录螺旋矩阵二刷 leetcode59 来看下螺旋矩阵。螺旋矩阵这道题确实很容易写着写着就绕进去了。首先读下题。给出正整数n,生成n*n的矩阵。 我们来看其中一个用例,完成一个圈是需要四个循环去填充。但是四条边填充的时候要始终保持一样的规则,比如左闭右开的规则。那么转几圈呢。需要外部一个循环来 阅读全文
posted @ 2024-07-21 21:18 Bathwind_W 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 代码随想录数组二刷:长度最小的子数组(滑动窗口) leetcode209 这道题采用滑动窗口的思想去做。 实现滑动窗口,主要确定如下三点: 窗口内是什么? 如何移动窗口的起始位置? 如何移动窗口的结束位置? 窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。窗口的起始位置如何移动:如果当前窗口 阅读全文
posted @ 2024-07-20 23:36 Bathwind_W 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 代码随想录移除元素二刷 leetcode 27 这道题思路的话可以这样去理解,用两个指针,一个慢指针,一个快指针。先让快指针往前面去探路,也就是去遍历数组,遇到不为val的值再去把该值赋值给nums[slow],slow指针+1,遇到为val的值,nums[slow]不做任何操作,继续移动fast指 阅读全文
posted @ 2024-07-20 19:27 Bathwind_W 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 二分法模板: 1:左闭右闭区间写法 第一种写法,我们定义 target 是在一个在左闭右闭的区间里,也就是[left, right] (这个很重要非常重要)。 区间的定义这就决定了二分法的代码应该如何写,因为定义target在[left, right]区间,所以有如下两点: while (left 阅读全文
posted @ 2024-07-17 22:07 Bathwind_W 阅读(6) 评论(0) 推荐(0) 编辑