- 博客(5)
- 收藏
- 关注
原创 leetcode NO.209 长度最小的子数组(滑动窗口)
求 长度最小,长度最长,子数组,子串 想到滑动窗口,该题可以定义两个指针 left 和 right ,right作为窗口终止位置,left作为窗口的起始位置, right 不等于数组长度时累加,同时定义一个sum变量存储 nums[right] 的累加值,如果sum满足条件(即大于target),此时子数组长度为 right-left+1,判断它是否是最短的子数组长度,同时sum减去nums[left],left++(即窗口左边滑动)。
2024-06-29 16:21:23
197
原创 leetcode NO.977 有序数组的平方(头尾指针)
题目给定一个非递减序列的数组,要求我们平方之后也返回一个非递减数列的数组,很简单,平方数一定是从左右到中间依次递减的,我们只需要设置两个指针 head 和 tail ,一个指向最左边一个指向最右边,然后比较两者平方大小,如果head指向的数大,则head++,反之,tail,然后将比较大的数据存入一个数组,当然这个数组的下标是从后往前递减的,最后head == tail时循环结束,返回新建的那个数组即可。
2024-06-29 14:28:21
199
原创 leetcode NO.27 快慢指针移除数组元素
题目要求原地移除相同元素,所以我们不能开辟一个新的数组存符合要求的数据,那么我们直接用原数组保存。对此我们可以设定两个指针: slow 和 fast,初始化为0,fast累加,用nums[fast]和 val 比较,如果不等于 val 即符合题目要求,nums[slow] 存储 该数据 ,且slow++, 如果等于则 slow不变 ,fast++, 直到fast = numsSIze结束循环,最后slow的值即为要求的数组长度值。
2024-06-29 14:04:31
157
原创 typedef类型重定义和define宏定义的一些区别
我们通过gcc -E 预处理一下可以看到,INT_在编译后是直接被简单替换成 int* 的,而typedef的int*则会被看作一个整体。通过两个例子可以看出,typedef重定义的类型会是一个不可分割的整体,而define宏定义只不过是把其代表的数据在编译时进行简单替换。是给原有的数据类型取一个别名,重定义的类型具有与原有类型相等同的权柄;是一个简单替换,在编译时,宏定义会被它所代表的数据直接替换掉;个人学习笔记,如果有误,欢迎大佬指正!
2024-01-30 19:22:55
425
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人