- 博客(32)
- 收藏
- 关注
原创 【leetcode】通过两种遍历方式构造二叉树
找到左子树、右子树对应的遍历序列:先构造一个hash表存储 一个序列中每个节点的索引,再通过另外一个序列计算出左子树、右子树对应的遍历序列的长度。分治法:先构造出当前根节点,再递归构造左子树,递归构造右子树,核心是。
2025-03-30 21:56:42
215
原创 因子数个数之和
2. 思想转换:统计每个数在 1 到 N 中作为因子出现的次数,从而避免对每个数进行因子分解,将时间复杂度优化到O(N)。( 没想到 :( )1. 求每个数的因子数再求和:超时。的保研机试一道题,有时间限制。
2025-02-24 21:34:26
165
原创 scanf 输入 存入输入缓冲区 问题
1. **`scanf` 跳过空白字符**:当 `scanf` 读取数字、字符串、浮点数等常规数据类型时,它会自动忽略缓冲区中的空白字符(空格、Tab、换行符)。这时,输入的字符就是 `'\n'`,所以程序会输出换行符。2. **连续使用 `scanf`**:如果调用 `scanf` 读取的都是标准数据类型(如 `%d`、`%f`、`%s` 等),不会因为缓冲区中的空白字符而出现问题。2. **使用 `%c` 格式符读取字符** 时可能出现问题,因为 `%c` 不会跳过空白字符,而是直接读取缓冲区的内容。
2024-11-14 21:44:02
521
原创 unix网络编程:解决小型聊天室的用户私发消息问题
可以看到,Tom给Bill、Lily群发一个问候消息,Lily私发消息回应Tom。思路:在服务端的用户链表中找到要私发的用户名,用其节点里的。发消息,就可以达到私发的效果。今天老师布置了一个在线聊天室。
2024-10-24 21:03:04
1027
原创 二叉树的操作:先序中序后序遍历(非递归,借助栈)、树高、输出叶子结点、复制、层序遍历
【代码】二叉树的操作:先序中序后序遍历(非递归,借助栈)、树高、输出叶子结点、复制、层序遍历。
2024-10-20 19:06:24
491
原创 解决 基于线程的并行通信服务 多线程竞争的问题
由此可见,是客户2的套接字端口占用了客户1的,此时只有一个正常通信的套接字端口即客户2的Socket。如果对等线程在主线程执行第78行创建新的conn之前就执行了第15行,那么对等线程就得到正确的通信端口。在我们的系统中它失败了,但是在其他系统中,它可能就能正确工作,让程序员“幸福地”察觉不到程序的严重错误。若客户2也和服务端建立起连接,会创建一个新的conn与对等线程1里使用的conn1竞争。后,便把conn的地址传到对等线程1里去,在对等线程1里使用conn1这个端口。
2024-10-17 23:39:14
1005
原创 深度优先遍历dfs的两种实现方法:递归/非递归(借助栈)
在解析递归算法时,可以注意到它依赖于系统提供的隐式栈来执行。根据递归算法执行过程中的递归工作栈的状态变化,可以编写相应的非递归算法。这通常涉及创建一个显式的工作栈来模拟递归工作栈的行为。
2024-10-13 22:29:37
1110
原创 【leetcode】11.盛最多水的容器
采用双指针,且每次只移动长度短一点的柱子(类似于贪心算法),左指针向右移,右指针向左移,直至两个指针重合,并更新最大容积 max。思路:2个for循环是不行的,时间复杂度为O(n^2),运行超时。
2024-10-11 20:50:45
411
原创 【leetcode】2. 两数相加
2.设置一个进位符 t,用来存储每位相加的进位信息;3.对多出来单独的链表进行处理(只需考虑。,存入第三方链表L3里;),接入到L3的后面。
2024-09-26 17:24:09
927
原创 实验1.1 冒泡排序:将 E,X,A,M,P,L,E按字典顺序排序
【代码】实验1.1冒泡排序:将 ‘E‘,‘X‘,‘A‘,‘M‘,‘P‘,‘L‘,‘E‘按字典顺序排序。
2024-09-23 22:12:55
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人