- 博客(3)
- 收藏
- 关注
原创 算法训练第二天 | 数组part02
做题时先只移动右指针扩张范围,然后满足条件(如:窗口内的值总和>target)就开始缩小范围(左指针右移、右指针不动来缩小范围),记录其中的最小值;直到不符合条件后,又开始扩大范围(左指针不动、右指针继续右移),如此重复,直到右边碰到了边界。区间规则不能变,不能一会儿左闭右开,一会儿左闭右闭,会很乱。使用一个二维数组,来记录螺旋矩阵中的值arrs= [[0,0,0,...], [0,0,0,...], ...]这里使用左闭右开的区间:每条边的区间范围包含第一个元素位置,不包含最后一个元素的位置。
2025-02-05 09:32:44
454
原创 算法训练第三天 | 链表part01
链表由一系列的节点组成,节点之间通过指针串联在一起,每个节点node包含数据和指向下一个节点的指针,最后一个节点指针直线null(空指针的意思)。头结点:链表的入口节点,也就是head。每个节点只有一个指针,指向下一个节点,最后一个节点的指针指向空null,表示链表结束。只能单向遍历。每个节点由两个指针,一个指向前一个节点,一个指向后一个节点。这种结构可以进行双向遍历。链表的最后一个节点的指针指向第一个节点,形成一个闭环。循环链表可以是单向的,也可以是双向的。优点缺点创建链表:头插法和尾插法插入节点:删除节
2025-02-02 13:46:15
1831
原创 算法训练第一天 | 数组Part01
若left和right都很大,mid = (left + right) //2 可能会越界,所以实际代码中使用mid = left + (right - left) //2,避免越界。二分查找边界条件很重要,容易搞错。循环不变量原则:对区间的定义要保持不变,每次处理区间的边界都要按照区间的定义来操作。按target的区间一般有左闭右闭 [left,right] 和 左闭右开 [left,right)两种写法。循环不变量原则:对区间的定义要保持不变,每次处理区间的边界都要按照区间的定义来操作。
2025-01-22 20:48:34
877
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅