- 博客(8)
- 收藏
- 关注
原创 最长连续不重复子序列(双指针)
1.当i指向1时,s[1]++;不符合while条件,此时i = j = 0(此时i和j都表示下标);2.i继续移动到2,s[2]++;不符合while条件,此时i = 1, j = 0;4.i继续移动到3,s[3]++;不符合while条件,此时i = 3,可知后面没有重复的数字了,j++ j变成2, 不符合while循环;那么i移动到最后,i = 4,j未移动,所以j = 2.
2024-03-07 23:03:20 315
原创 子矩阵的和
输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1, y1, x2, y2,表示一个子矩阵的左上角坐标和右下角坐标。接下来q行,每行包含四个整数x1, y1, x2, y2,表示一组询问。一 1000 ≤ 矩阵内元素的值 ≤ 1000。接下来n行,每行包含m个整数,表示整数矩阵。对于每个询问输出子矩阵中所有数的和。共q行,每行输出一个询问的结果。第一行包含三个整数n,m,q。思路:利用二维前缀和来求。
2024-03-07 00:45:00 332
原创 前缀和模板
要求[l , r]区间的和,就是用prefix[r] - prefix[l - 1];每次循环 让prefix[i] = prefix[i-1] + a[i]前缀和:为了优化循环的时间复杂度,将原本O(n)的复杂度变成O(1).思路:定义一个前缀和数组prefix,一个数组用来存储数据。(简单的记录一下自己的刷题)
2024-03-06 20:10:25 343
原创 bfs模板
知道当前层都被存储之后,按照存储的先后顺序,先被存储的结点也会被先取出来,(一种是从A到出发是否存在到达B的路径。因此我们就需要一个数据结构去存储和操作,需要使得先遍历到的结点先被存储,扩散:从队列中取出队头的结点,将他的相邻结点放入队列,不断重复这一步。终止:当队列为空的时,说明我们遍历了所有的结点,将整个图都搜索了一遍。我们需要一层一层的去遍历所有的结点,那么相邻结点的访问顺序如何确定呢?继续遍历他的子节点--->故需要一种特点为先进先出的数据结构。起始:将起点放入队列中。acwing 走迷宫。
2024-03-05 23:16:12 343
原创 力扣 合并两个有序链表
当while循环不成立了之后,说明必有一个链表到达最后,那么利用尾指针将不空的那个链表进行连接起来。接下来,p、q都不为空,那么继续比较,接着执行while循环里面的操作。大致思路:修改节点的指针域,而非创建新的节点。tial指针移动完之后,q移动到下一个位置。
2024-01-30 09:13:26 561 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人