- 博客(11)
- 收藏
- 关注
原创 大厂算法通关:ACWing基础课+提高课 知识点学习&刷题顺序
本顺序,严格遵循「先基础后进阶、先无依赖后有依赖、先高频后低频」的原则,同时对ACWing课程内容做了,剔除了99%大厂面试不考的纯竞赛向内容,避免无效学习。
2026-04-24 13:36:04
720
原创 算法题解:单链表的高效实现(含经典致命错误深度剖析)
数组映射法是处理"第k个插入节点"问题的标准解法,时间复杂度最优sort数组是只读的,只能用来记录节点指针,绝对不能修改它的值修改前一个节点的next指针,让它跳过被删除的节点全局变量分配在静态存储区,不会出现栈溢出问题,适合存储大数组题目保证所有操作合法,因此可以省略一些空指针判断,提高运行效率。
2026-04-20 11:40:53
370
原创 算法提升之判断子序列
判断子序列问题是一个经典的算法问题,通过双指针法可以高效解决。维护两个指针分别指向两个序列按照规则移动指针仔细处理边界条件时间复杂度为线性,适合处理大规模数据掌握这个算法不仅有助于解决实际问题,也是理解双指针技巧的典型案例。在实际编程中,要特别注意指针移动和边界检查的顺序,避免出现逻辑错误。
2026-04-16 10:18:15
942
原创 算法提升之前缀和求子矩阵的和
边界处理:注意矩阵下标从1开始,避免越界访问公式记忆:查询公式的口诀是"大减左减上加左上"变量命名:使用有意义的变量名(rows, cols, queries)数组大小:多开一行一列用于边界处理将复杂问题分解,通过巧妙的预处理将高频操作的时间复杂度降到最低。掌握这个算法不仅解决了一类具体问题,更重要的是培养了优化思维。在编程的道路上,每一个算法的理解都是一次思维的飞跃。继续前行,保持好奇,你会发现更多算法的美妙之处!每一次代码的调试,都是与逻辑的对话;每一次算法的实现,都是思维的升华。
2026-04-06 11:58:22
326
原创 算法提升之归并排序求逆序对个数
/每出现一次,就代表num[i…mid]都和num[j]构成一个逆序对。if(num[i] <= num[j]){//这里加等号是因为相等的数不算逆序对,防止相等的数进入else语句。while(i <= mid && j <= right){//如果一个子序列已经取完就不用比较了。//先把数组对半分,把子序列排好再把两个子序列归并。//归并操作,将两个子序列中最小元素依次取出。//如果只有一个元素则返回。//把左边剩的全部放进去。
2026-03-26 12:17:26
29
原创 算法提升之归并排序
/每出现一次,就代表num[i…mid]都和num[j]构成一个逆序对。if(num[i] <= num[j]){//这里加等号是因为相等的数不算逆序对,防止相等的数进入else语句。while(i <= mid && j <= right){//如果一个子序列已经取完就不用比较了。//先把数组对半分,把子序列排好再把两个子序列归并。//归并操作,将两个子序列中最小元素依次取出。//如果只有一个元素则返回。//把左边剩的全部放进去。
2026-03-26 12:16:39
26
原创 # io多路复用之select详解
参数2、3、4:&rfds,可读文件描述符集合的首地址,用来往可读集合中写入fd。3、select使用:select(maxfd+1,&rfds,&wfds,&errfds,struct timeval *timeout)的超时时间,如果填NULL表示永久等待,如果想要设置时间,需要定义一个如下结构体类型的变量,并将地址传递进去。参数1:maxfd+1,fd从0到maxfd有maxfd+1个,需要遍历maxfd+1次。=0:表示设置的超时时间,时间已经到达,但是没有事件事件产生。
2026-03-24 19:55:27
42
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅