- 博客(11)
- 收藏
- 关注
原创 每日算法题2
交易中的逆序对为 (9, 7), (9, 5), (9, 4), (9, 6), (7, 5), (7, 4), (7, 6), (5, 4)。首先明确一点,当把数组分为两部分时,左边逆序对+右边逆序对+一左一右逆序对的数量和等于不分组的数量,即我们可以把数组分为两部分算其逆序对。//使用归并排序,因为归并排序也是分两部分,而且重要的是当左边和右边有序,比较他们可以省事.//因为是找逆序对,所以这个里只需变化tem,ret不变。//左边一块逆序对+右边一块逆序对+一左一右找到的逆序对。
2026-10-10 15:54:00
98
原创 寻找两个有序数组的中位数
因为下标是从0开始的,在两个数组里分别找到k/2-1的位置时,比较当前位置大小,设A,B两个数组,如果A当前位置小,即A前面k/2-1个数也可以排除,为什么?链接:https://leetcode.cn/problems/median-of-two-sorted-arrays/solutions/258842/xun-zhao-liang-ge-you-xu-shu-zu-de-zhong-wei-s-114/如果奇数极为(总长=1)/2,偶数为 总长/2,总长/2+1。请你找出并返回这两个正序数组的。
2026-10-09 10:47:40
147
原创 自学ue5,day1
outline下面左边是detail,当我们选中一个物体是可以改变他的detail,比如location是他的坐标(世界坐标)下面还有物理状态的控制等。到左边两个小的了,第一个是物体以世界为标准或以自己为标准,即当xyz移动时会有一个世界xyz坐标和物体自己的xyz坐标,我们可以切换。还有,按住左或右键,加c,我们就相当于用了一个望远镜(放大远处画面)松开右键取消放大,在视角回来途中再按住鼠标可以停下来。最左边的bookmarks是书签可以标记你的摄影机位置,按1,2,3可以跳转。
2026-05-11 19:41:28
216
4
原创 链表内的指定区间反转
/ next 插入到 pre 后面。i < n - m;++i) { // 移动 n-m 次。pre一开始为dummy,因为如果m为1,pre就是dummy那个位置 不为1我们可以移动。range为n-m+1但因为cur为第一个节点所以循环n-m即可。// 1. 找到第 m-1 个节点(pre)
2026-03-17 12:24:37
253
16
原创 C语言堆笔记
3. 建堆(建堆是基于已有数组,将数组逻辑上视为完全二叉树来调整结构,满足堆的性质,不需要额外空间“连接”数组,仅通过下标关系操作节点)n-1为最后一个数据的索引,n-1-1即算父子数索引的公式的。方法2:向下调整建堆(从最后一个非叶子节点开始,向前调整)方法1:向上调整建堆(从第二个元素开始,逐个向上调整)// 2. 删除最后一个元素(原堆顶)(2)左子数i*2+1,右子数为i*2+2。// 1. 将堆顶与最后一个元素交换。// 从最后一个非叶子节点开始调整。· 从 (n-1-1)/2 开始倒序调整。
2026-01-03 17:34:08
398
4
原创 C语言新手学习汉诺塔的思考
注意,这里有一个很容易搞混的东西,当我们要把上面两个盘子移到b柱时,他们的目的地是a到b,而三个盘子是a到c,当移上面两个盘子的时候,目的是a到b对吧,那我要把最上面那个盘子移走就要把它放在辅助柱子上(除了a,b)的柱子即是c,又有人说不是目的柱子吗?对,他是,但他是第三个盘子的首要目的地,移第三个盘子我们先要把它头上两个盘子移到b柱上,那此时对于第二个盘子来说目的地先是要a到b,那你要到b,是不是要把头上的盘子放在辅助盘是,对于第二个盘子从a到b的辅助盘就是c。所以,移二盘到b先移一盘到c。
2025-11-21 11:03:03
288
1
原创 C语言关于文件操作
fopen返回FILE*的一个文件地址,他的参数是1文件名,2对应的流,如果是r若文件不存在会报错,r开头的都是这样,w是写,a是追加,他们对于没有的文件夹会自己创一个新的。(5)fgets返回char*了,因为返回一个字符串,单字符的话可以int,第一个参数用于存放流里得到的字符,第二个为读取字符数,第三为流。(2)fputc将字符输入指定的输出流中,第一个参数是字符,第二个参数指定的流,返回int,错误为EOF。(1)最基础的就是,fopen,fclose,和他们间对文件的操作了。
2025-11-16 18:14:44
238
1
原创 新手C语言动态内存的笔记
(2)malloc,malloc的参数是size_t一个正整数,代表你要开辟的字节大小,他返回的是void *的地址,我们要用地址变量去接受它。(5)realloc调整动态内存大小参数第一个是要调整内存的地址,第二个参数是调整后的大小单位是字节。注意,如果开辟失败会返回NULL所以,我们一般在它的下面放一个if,判断是否开辟失败,再用perror,和return。(4)free,释放内存,只可以释放动态开辟的内存它的参数是指针,我们要放入要释放内存的地址。注意,malloc和calloc都是返回void*
2025-11-13 21:55:18
297
原创 小bitC语言第二天
全局变量:在⼤括号外部定义的变量就是全局变量全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。• 局部变量:在⼤括号内部定义的变量就是局部变量局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。sizeof 在代码进⾏编译的时候,就根据表达式的结果的类型,推到并确定了类型的⻓度,⽽表达式真要被执⾏,却要在程序运⾏期间才会发⽣,如果在编译期间已经将 sizeof 处理掉了,所以在运⾏期间就不会执⾏表达式了。(2)明确意图,你看到bool都不会想歪了一定是true or false了。
2025-11-07 15:00:46
184
1
原创 C语言新手的无奈时刻
这里用了fgets,他的特点是可以指定最大读取长度,防止缓冲区溢出会包含换行符:如果输入长度小于数组大小,会包含末尾的换行符。因为scanf遇到空格会停止,如我想给他输入一个hello world,问了ai后才知道可以。刚刚做题考试,想破脑袋都没有想到怎么给char类型的数组输入一个带空格的字符串。printf("你输入的是: %s", str);printf("请输入字符串: ");这些东西感觉都好陌生,我得继续往下学了。(2)还有一个方法不过我还看不懂。
2025-11-05 23:34:50
201
1
原创 初学者的c语言学习的第一天
(6)printf注意有f,f的意思是format,不要因为英语习惯只写了print表示打印,而且要用变量是要%加上对应的字母,如整形要%d或%ld等表示。(4)main,和include这些可能会写错一个字都会错误,比如我找了半天错误才发现main写成了mian。(1)#include会在编译的时候将要#include包含的东西放进去,但这一步我们一般看不到。(2)int main(),{},和return 0是必不可少的框架,我们的代码放在{}里面。注意,一个源文件里只可以有一个main函数。
2025-11-05 18:34:55
123
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅