- 博客(22)
- 收藏
- 关注
原创 链表相关题目
如果两个链表相交,那么一定会像下图一样,在某一个节点相交,后续的节点就相等于了,因为链表只有一个next指针,所以是不可能分叉的。解题步骤:我们可以先计算h1的链表长度,再计算h2的链表长度,得到它俩的差值,比如h2比h1长n个节点,那么先让h2走n的节点,相当于让h1和h2的起点在同一层,那么两个链表总会在某一个节点相交,返回这个节点就行,如果两个链表不相交的话,那么它们的最后一个节点一定是不相等的。代码部分。
2025-08-03 16:01:26
896
原创 位运算练习题
由上面可以看出,2的次幂就是只有一个bit位为1的数,我们可以通过Brian Kernighan算法,求出这个数二进制状态最右侧的1,如果求出来的数等于原来的数,那么这个数就是2的次幂,下面举个例子,就能看懂了。2的0次幂 0000 0001。2的1次幂 0000 0010。2的2次幂 0000 0100。2的3次幂 0000 1000。
2025-07-27 21:14:15
293
原创 异或运算练习题
解法:准备一个数组,获取每个数字的所有bit位,假设我们只有4位,当然32位是一样的,第一个数为1010,出现了m次,那么数组中的元素为[m, 0, m, 0],第二个数是0101,出现了m次,那么数组中的元素为[m, m, m, m],第三个数为1100,出现了m次,数组中的元素为[2m, 2m, m, m],第四个数为0011,假设出现了n次,那么数组中的元素为[2m, 2m, m+n, m+n],将数组中的每个元素都对m取模,那余k的bit为就是这种数。题目六:返回出现次数小于m次的数。
2025-07-26 22:58:26
439
原创 一个队列实现栈
如何利用一个队列实现栈,栈的思想是后入先出,队列的思想是先入先出,下面将以图解的方式给大家展示。1.首先入队一个数据;2.再入队一个数据,目前这样还是队列,a先出,没有达到栈的后入先出思想;3.将a出队再入队,这样就达到栈的思想了;4.再入队一个c。
2025-07-06 15:47:02
138
原创 两个队列模拟栈实现
队列:先进先出(FIFO),栈:后进先出(LIFO)采用两个队列模拟栈,s2入栈,s1出栈,其原理就是将数据入队到s2中,然后将s1的数据入队到s2中,然后把s1和s2的指针互换,这样就能实现后入先出的概念了,这样说有点抽象,且看下面分解。首先给大家讲一下队列的基本操作,定义一个结构,表示队列;如何判断队列是空队列:队首指针(head/front) = 队尾指针(tail/rear)如何判断队列是满队列:(对尾指针+1) % 队列容量 = 队首指针。
2025-06-12 22:47:49
312
原创 Git版本管理控制
比如一个项目有两个模块,a负责模块一,b负责模块二,a修改模块一之后准备提交,但是b修改的模块二在a提交之前就提交了,a提交的时候就会冲突,这个时候就可以使用git pull,git pull会自动合并,合并时会创建一次提交。git reflog 记录所有的更改,是当你的项目损坏时(只要提交过),它给了你挽回的机会,但是它只会保存在本地仓库(不能push),且默认之保留90天。这种情况就是已经add到缓冲区了,此时缓冲区和工作区的文件是一样的,再从缓冲区检出就没有意义了,此时要从仓库中检出。
2025-05-25 15:57:59
1596
原创 【C语言阶段】- 01 安装编译环境
简单的说,语言是人类进行沟通和交流的工具,广义的说,语言是一套具有共有规则的指令,指令可以通过文字、嗅觉、触觉等方式传递。xxxxx of xxxxx ---> A of B --> B的A。
2025-05-01 09:11:37
852
原创 python学习-pyautogui库
注意我们的屏幕一般是1920*1080,第一个像素点的位置是0,0,所以最后一个像素点的位置是1919,1079。eastOutQuad:start fast, end slow 开始快,结束慢。easeInQuad:start slow, end fast 开始慢,结束快。- deration:移动到这个点需要多久,秒级别,最小值是0.1秒。鼠标位置可以以元组形式传入,也可以以x, y传入,移动的是绝对坐标。注意:一定不要太快,否则会太快导致无法推动到目标位置。
2025-04-04 23:20:39
224
原创 C语言学习-动态内存管理
我们已经掌握的内存开辟方式有:intval20;//在栈空间上开辟四个字节chararr100//在栈空间上开辟10个字节的连续空间void*mallocsize_tsize但是上述的开辟空间的方式有两个特点:1.空间开辟大小是固定的。2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道, 那数组的编译时开辟空间的方式就不能满足了。
2025-03-30 20:28:44
1880
原创 C语言学习-指针进阶
p就是第一行数组本身(如同p=&m,*p就等于m本身),那么*(p+1)就相当于第2行本身,就相当于arr[1]这一段在鹏哥C语言视频的P107,指针进阶_数组指针,不容易理解,重点看一下。但是按照上面的用法感觉比较别扭,更推荐大家使用下面的方法。p是指向一个整型数组的,数组5个元素 int [5]p+1 -> 跳过一个有5个int元素的数组。p的类型是:int(*)[5]
2025-03-20 22:51:31
162
原创 C语言二维数组练习-扫雷游戏
创建了2个数组,一个是mine,用于设置雷的数组,一个是show,用于展示给玩家的数组,为了方便计算数组周围雷的数量,数组初始化为了11行11列,这样的好处就是不用多做一个判断,只需要在打印的时候,注意打印1~9的索引就可以了。
2025-03-15 22:14:28
221
原创 C语言学习记录-操作符
逻辑反操作负值正值取地址sizeof操作数的类型长度(以字节为单位)对一个数的二进制按位取反--前置、后置--++前置、后置++间接访问操作符解引用操作符类型强制类型转换。
2025-03-15 14:22:36
925
原创 Tkinter库的学习记录-随记1-监听字符串
trace_add` 是 `StringVar` 中用于监听变量变化的核心方法,支持 `"write"`、`"read"` 和 `"unset"` 三种模式。- 通过 `trace_remove` 可以移除监听器,避免不必要的回调。- `trace_info` 可以获取当前变量的所有监听器信息。- 建议使用 `trace_add` 替代已弃用的 `trace_variable`。
2025-03-09 22:55:11
1369
原创 Tkinter库的学习记录
messagebox参数详解messagebox.showinfo('title', 'message', parent=window名)监听字符串self.emp_internation为创建的字符串变量,ttk.String()trace_add('write', 函数名),监听字符串变量写入之后需要干什么。表头组件创建表格组件参数表头标识 columns, 参数后面可以接列表,列表中有几个元素,就增加几个表头去除默认表头 show="headings"
2025-02-16 23:21:47
602
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人