- 博客(7)
- 收藏
- 关注
原创 leetcode每日一题
数组最方便的就是查询,可以建立集合,然后再集合中查找对应的x的上一位 x + 1 ,x + 2, 一直到 最大序列 x + y 每查询成功一次就对应的序列长度值加一 而数组中的每个元素都有可能是x 因此要遍历数组的元素,而为了避免数组中如果查到了 x + 3 之后没有了 ,不用调到 x + 2 在查一次(数组中有x + 2 的话) 那么再遍历的时候就要加上判断前提 即数组中不包含前缀 x - 1。例子:[100,4,1,9,2,3] 返回的是4 因为连续的是1 2 3 4。
2025-04-21 22:38:09
209
原创 代码随想录学习
数组总结篇 学习到的内容:二分查找(边界得确定条件),滑动窗口(快慢指针以及窗口移动的条件,尾指针得确定,内部循环要用while得原因,快慢指针(移动数组元素),求解数组最小子序列问题),旋转遍历二维数组(边界条件得确定),前缀和(求解数组任意区间内的和,求解数组得最小区间和和最大区间和,求解子数组的元素个数等等)双链表:头指针<->节点(指针域,数据域,指针域)->节点(头指向尾部,尾部也可以指向头部)输入二维矩阵 按照行输入且不告诉你输入的次数。表示接下来n行输入m个整数。输入一维矩阵按照列输入。
2025-04-19 21:16:54
125
原创 代码随想录数组算法题笔记
滑动窗口系列,使用双指针实现滑动窗口需要注意的是 利用for循环时 索以才是终止指着,并非先开始走的才是中止指针。利用hash表存放 t 的元素出现个数,然后再创建窗口 窗口扩充的条件就是 没有完全覆盖掉 或者刚刚好覆盖掉 t 如果覆盖掉了 t 那么就代表着 s 中出现的hash表对应的键值大于 t hash表中对应的键值。第三种情况,查找值不在数组内,返回其对应的位置如【2,3,4】查找值 1则需要返回【-1,0】返回覆盖掉t的最小字串 ,就需要统计t中的字符元素和s中的字符元素。
2025-03-10 23:23:15
262
原创 2025,3,5刷题笔记
数组:单变量,多个数存储,静态数组一般存储在栈上,动态数组一般存储在堆上,存储时为连续地址,数组的索引从0开始,查找固定元素只用花费O(1)的时间复杂度,但是对数组的删除则需要花费较长时间。left = 0,right = 6 第一次时 mid = 6 + 0 / 2 = 3 即 4 > 2 执行 right = mid - 1 得到 right = 2。两边都是闭区间,左边闭区间右边开区间。元素查找时有四种情况:在所有数组元素之前,之后,在数组中的某个元素,在数组中的正确位置。解决办法:1暴力检索。
2025-03-05 23:07:14
175
原创 leetcode刷题笔记
考察点:对一维数组进行排序,排序后寻找数组内得第三大数,如果有的话就返回,没有的话直接返回数组中最大得元素;顺序排序:找到数组中未排序的数组中最小的元素放到排序好的数组最小元素进行比较,比数组最小的元素小就放到右边,比他大了就交换位置。解法二:利用空间节省时间,利用hash表将目标值与数组的差存储起来,如果后续数组内有元素与表内键值对应则说明存在满足的两数之和。冒泡排序:比较相邻元素得大小,交换位置。题目:414第三大的数,给一个非空数组返回此数组中第三大的数,如果不存在就返回数组中最大的元素。
2025-02-24 22:33:31
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人