- 博客(28)
- 收藏
- 关注
原创 移植rtl88x2c wifi
报错 ifconfig: SIOCSIFFLAGS: Operation not permitted。定位到rtl8822cu_recv.c中的recvbuf2recvframe()函数,猜测是。1 修改rtl88x2c Makefile,增加CONFIG_PLATFORM_NEW。5 再次执行ifconfig wlan0 up,错误消失。3 执行 insmod 88x2cu.ko。4 执行ifconfig wlan0 up。2 编译生成可执行文件88x2cu.ko。适配Linux 2.6.35。
2025-03-10 20:47:25
110
原创 补打卡第三十天
如果下一个气球的左边界大于当前箭的位置,说明需要再射出一支箭,并更新箭的位置为当前气球的右边界。结束时间较早的区间会为后续区间留下更多空间,从而增加不重叠区间的数量。进行排序,这样一支箭可以覆盖尽可能多的气球。,以便知道每个字符在字符串中的范围。为该字符最后出现的位置。为下一个片段的起始位置。使用哈希表存储每个字符。遍历字符串,对每个字符。
2024-12-29 22:09:49
207
原创 补打卡第二十五天
上述方法,is_safe()的实现效率较低,每次进行安全性检查都需要遍历之前所有的行,导致时间复杂度较高。将每个出发地视为节点,将从一个机场飞到另一个机场的机票视为边,构建有向图,并需要按目的地的字典序排序。:DFS 按后序遍历构建路径(先访问子节点,再加入当前节点),因此最终需要将路径反转。:每访问一个节点,从当前节点的优先队列中取出字典序最小的目的地,并递归访问该目的地。与上一题的不同之处在于,需要在递归过程中跳过相邻的重复数字,避免重复结果。2、但在递归过程中,原数组被修改,可能需要注意副作用。
2024-12-22 23:47:34
356
原创 打卡第二十四天
用回溯法解决分割问题时,尽管逻辑上类似于枚举所有可能的选择(如双重循环),通过合理的剪枝策略,可以迅速跳过明显无效的选择,从而减少不必要的计算。1、将subset加入result时,无需检查subset是否已经存在,因为nums中的元素是互不相同的,生成的子集本身就不可能重复。在生成子集时,如果当前元素与前一个元素相同,且前一个元素已经被跳过,则跳过当前元素,避免重复子集的生成。2、将subset加入result后不需要return,否则会导致递归提前结束。和上一题的差别在于,本题的数组包含重复元素。
2024-12-20 13:08:12
212
原创 打卡第二十一天
一点个人想法:在思考递归的时候,从最简单的子问题开始,找到子问题在不同情况下的解,再把这些解通过递归的形式进行返回,再加上终止条件即可。注意:左子树递归的左边界是start而不是0,右子树递归的右边边界是end而不是n-1。(从右子树开始遍历,然后根节点,最后左子树)来处理节点。本题的重点在于,必须按照。
2024-12-17 12:27:28
159
原创 打卡第二十天
注意:node.left = new_node 和 node.right = new_node 这种写法是错误的,无法在递归中将新节点正确插入树中。递归的目的是通过返回值来正确更新树的连接关系。在二叉搜索树平衡的情况下,利用其特性的方法更高效。2、删除节点并保持搜索二叉树的特性。:让其父节点指向其唯一子节点。1、找到需要删除的目标节点。
2024-12-16 15:13:00
154
原创 打卡第十八天
中序遍历会按照升序输出二叉搜索树的节点值。最优解:只用两个变量prev和min_diff,不需要存储所有节点值,直接在中序遍历过程中实时计算相邻节点差值,保证了时间复杂度和空间复杂度的最优。注意:pre == 0, if pre 返回的False。递归思路。
2024-12-14 14:53:05
235
原创 打第十七天
更优的方法,在递归过程中传递start和end两个索引,避免多次遍历数组和创建新的列表。需要确保每个子树的所有节点都满足整个树的约束,而不仅仅是局部的父子节点关系。该方法没有利用二叉树搜索树的特性,导致对不相关的子树进行了多余的搜索。:左子树的所有节点值小于根节点值,右子树的所有节点值大于根节点值。:中序遍历的结果是一个严格递增的序列。方法二:迭代(中序遍历)递归传递的参数是数组。
2024-12-14 00:21:33
218
原创 打卡第十六天
在Python中,嵌套函数如果需要修改外部函数作用域的变量(非全局变量),必须使用nonlocal关键字来声明这些变量。由于递归过程中path是不断变化的,因此当递归继续或回溯时,path的内容也会动态改变,导致最终存储的结果不正确。以上两道题都在递归中构建了新的列表,更优的方法是通过传递start和end索引来避免空间的浪费。2. 递归逻辑:左右子树分别递归,有一个满足条件则返回True。3. 确定单层递归的逻辑:确定每一层递归需要处理的信息。需要将数组转换成队列,每次弹出前序数组左边的值。
2024-12-12 15:12:47
201
原创 打卡第十五天
自上而下递归:自顶向下递归计算子树高度,每次计算都需要遍历整个子树。自下向上递归:自底向上递归计算子树高度,避免了重复计算。时间复杂度:O(n^2)时间复杂度:O(n)
2024-12-11 23:44:42
171
原创 补打卡第十一天
暴力解法的时间复杂度是O(n*k),效率较低,特别是当k接近n时。可以通过双端队列将时间复杂度优化为O(n)。在数组长度很大的情况下,使用堆会更优。
2024-12-08 14:27:59
192
原创 打卡第九天
1. Python 的字符串类自带find方法,它能高效地找到子串的第一个匹配项的下标。如果最长前后缀长度能够整除字符串长度,说明字符串可以由重复子串构成。最简洁的做法:s.strip().split()[::-1]最简洁的写法:s[-k:] + s[:-k]
2024-12-06 00:18:40
172
原创 打卡第八天
Python语法可以简化成's[left], s[right] = s[right], s[left]'。range(start, stop, step),可以设置step。在Python中,字符串是不可变的,不能像列表那样直接用切片赋值。reversed()函数也能完成列表反转。
2024-12-04 20:30:48
162
原创 补打卡第七天
'if char not in hash_table or hash_table[char] == 0' 可以简化为 'if hash_table[char] == 0',因为Counter默认不存在的键值是0。注意跳过重复的值,以免最终答案出现重复的三元组。三次循环均需要考虑重复值的问题。分治和哈希表的结合。
2024-12-04 16:33:43
125
原创 第六天打卡
最后用来判断字典中的value是否全部归零的循环,可以通过“return all(value == 0 for value in count.values())”来简化书写。通过哈希表记录每个数字的下标,只需遍历数组一次就可找到答案。先实现数字拆分(重点),再判断是否无限循环。.intersection()也可以实现。
2024-12-02 23:02:34
94
原创 第四天打卡
当快慢指针在环中相遇时,从链表头节点到环起点的距离,与从相遇点沿环走到环起点的距离相等。从虚拟头节点开始循环,可以避免考虑链表长度为1,和删除最后一个节点等特殊情况。来作为移动的指针,避免修改。
2024-11-30 23:55:05
133
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人