- 博客(17)
- 收藏
- 关注
原创 lua源码剖析(00) - 前言
其实分析lua的文章不算少,广为人知有云风的《Lua源码赏析》,云风不仅站在一个非常高的高度对源码进行了分析,而且提供了大量的“扩展知识“,这个我们在将来分析的过程中会详细提到。另外我还参考了coredump的《Lua设计与实现》也写的蛮不错的,深入浅出,浅显易懂。lua是一个开源的、C实现的轻量小巧的语言。笔者在lua的使用过程中对其实现产生了强烈的兴趣,故产生了此专栏。1)上述两者分别对5.2和5.1的代码进行分析,5.4的代码有了一定程度的变化。coredump的《Lua设计与实现》
2023-05-13 20:00:52 232
原创 力扣 310. Minimum Height Trees
一、简述 这道题本质就是求树的中心,我没有能够独立做出这道题。二、思想 首先我们证明树的中心一定位于这个有向无环图的某一条最长路径的中点上。 a) 第一步证明其他任意节点到这条最长路径两端距离的最大值一定大于等于最长路径的中点到这条最长路径两端距离的最大值。这意味着以其他任意节点为根的树的height一定大于最长路径的中点到这条最长路径两端距离的最大值。 b) 第二步能够证明最长路径的中点到任意节点的距离一定小于等于最长路径的中点到这条最长路径两端距离的最大值。通过简单的反证法,能够证明若
2022-03-13 12:12:13 661
原创 CodeForces: The Equation 106.
一、题目简述 求给定范围中 ax + by + c = 0 的解的个数,a,b是输入,x的范围是[min_x, max_x],y的范围是[min_y, max_y]。 输入: a, b, c, min_x, max_x, min_y, max_y (他们的范围在【-10^8 ,10^8】) &nbs
2021-09-15 18:05:46 106
原创 ACM: Once Upon A Time
一、题目简述 有一天,有一对老夫妻出去玩,男的玩滑翔翼,女的在划船,突然他们想握手(没错,耍杂技),于是男的开飞机接近女人,并周期性的向女人伸手,女人呢也周期性的伸手,问她们能否握到手?如果能,第一次握手的时间是什么?如果不能打印"Impossible"。 女人第一次伸手时间为n,伸手周期为m。(女人第一次伸手时间为n) &nbs
2021-09-14 11:40:23 137
原创 2021-09-08
/* * @function: 指定协议族和套接字类型,并没有指定本地协议地址和远程协议地址 * * @headfile: #include <sys/socket.h> * * @param family: 指明协议族(协议域) * AF_INET => IPv4 * AF_INET6 => IPv6 * AF_LOCAL => Unix域协议 CH.15 * AF_ROUTE => 路由套接字 CH
2021-09-08 15:32:52 96
原创 TCP/IP的RST报文
一、到不存在的端口的连接请求 当向一个未使用的目的端口发送TCP连接请求时,目的服务器回应TCP复位报文。 PS: UDP返回ICMP端口不可达。二、异常终止一个连接 有序释放: 通过发送FIN来终止连接 异常释放: 通过发送RST来终止连接 (优点: 如果有任何待发数据,就可以直接丢弃了)三、检测半打开连接 半打开连接: 一方已经关闭或者异常终止连接,但是另一方还不知道。 半打开连接下,正常的一方向关闭的一方再次发送数据,接收方将回应RST报文。...
2021-09-07 15:22:44 1947
原创 唐朔飞《计算机组成原理》CH.6 数值的表示
《不要转载,谢谢!!!》零、基本概念名称定义机器字长寄存机的位数真值带’+’ 或 ‘-’ 号的数机器数符号数字化后的数一、原码定义0表示正数、1表示负数、数值位是真值的绝对值。零的表示原码中0有两种表示优点简单明了,易于真值转换缺点运算复杂,如果要加减2个不同号的数,你得先比较符号,再比较数值,这比我们之后要讲的补码可复杂太多了。二、补码 <重点>概念1.一
2021-08-27 10:20:41 144
原创 阅读TLS BUG的反思
阅读链接:https://www.seancassidy.me/the-story-of-the-gnutls-bug.html思考:如何进行错误处理!参考:https://stackoverflow.com/questions/385975/error-handling-in-c-code总结:1)使用枚举类型替换直接返回error code,不要混合用!;可以提供一个函数用于将枚举类型转换成人类可读的文字;最后一个我不明白,稍微提一下全局的error-callback?我真不太理解!2)如果唯
2021-07-28 11:38:38 94
原创 A星算法(纯C实现)
PS:写漂亮的博客太麻烦了,今晚还有欧洲杯,我就懒了,但我会加入备注,如果发现代码逻辑有问题,请@我!!!(代码我自测过了,但是不一定全面)#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#define DIMENSION 2#define DIRECTION 4/* * PS:我第一次写的时候row、col的下标是从1开始的,你能知道为什么我不用1开始吗? *(答案在最后哦,但是请先思考
2021-07-06 23:49:55 1020
原创 fibonacci number实现
Note(楼主很懒,所以先写一个简略版本,有时间再补上)一、简单的递归实现 直接利用递推公式实现: F(n) = F(n - 1) + F(n - 2) 复杂度O(n),空间复杂度O(1),如果算上调用栈,那么空间复杂度为O(n)。二、动态规划 简单的递归
2021-04-22 21:42:27 111
原创 实现pow(x,n)函数计算x的n次方
Note:只列出了网页,等想写的时候再去完善一、入门篇(暴力破解、分治和调用math.pow)https://www.geeksforgeeks.org/write-a-c-program-to-calculate-powxn/二、提高篇(迭代实现)https://www.geeksforgeeks.org/write-an-iterative-olog-y-function-for-powx-y/三、进阶篇(横模运算的递归和迭代版本)1.百度百科《取模运算》的模运算公式和横模运算词条(同一个网
2021-04-21 21:52:44 1477
原创 Pow函数的非递归实现
Pow函数的非递归实现一、题目描述 实现用来计算x^y的函数pow(int x, unsigned int y),且使其时间复杂度为O(logy),空间复杂度为O(1)。二、思考过程 为了详细说明,举一个例子y=39(二进制是100111) x^39 = x^1 * x^2 * x^4 * x^32有
2021-04-19 22:33:55 130
原创 Ugly Numbers问题
算法一 Ugly Numbers一、问题描述 质因子只有2、3、5的数称为丑数,为了方便,1也被归为丑数(1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15…) 现给出一个正整数n,求第n个丑数二、常规解法难点1. 如何求丑数 下图是百度百科给出的质因子定义 ...
2021-03-27 00:02:31 382
原创 算法入门一 只出现一次的数字
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-11-05 11:41:25 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人