
数据结构和算法
文章平均质量分 58
程序员-薯片
公众号【程序员薯片】
专注于:
1.AI+应用实战研究&开发。
2.码农中年危机自救指南研究&探索。
3.码农视觉的读书感悟&分享。
展开
-
基础算法【解题思路】:单链表的倒数第k个节点
定义指针p1,让p1走k步:定义指针p2,在p1走了k步的时候,p2也跟着走。p1走到最后的时候走了n-k步,停留在最后的null结点。P2从头结点开始,也跟着走到了n-k步,而n-k恰好是倒数第k个节点。原创 2024-01-08 18:05:14 · 446 阅读 · 0 评论 -
数据结构和算法:二叉树解题思维模式
我们只需要单独思考每一个节点应该做什么,其它的交给二叉树遍历框架,它会递归地在所有节点上做相同的操作。二叉树相当于二叉链表,由于没法写成迭代形式,所以遍历都是递归的形式。二叉树的所有问题就是在前中后序位置中注入巧妙的代码逻辑,去达到目的。是否可以定义一个递归函数,通过子树推导出原问题答案?使用一个traverse函数配合外部变量实现。写出递归函数的定义,利用这个函数的返回值。本质就是遍历二叉树所有节点的一个函数。是否可以通过遍历二叉树得到答案?traverse函数。原创 2024-01-04 15:41:20 · 587 阅读 · 0 评论 -
数据结构和算法:二分法
1.因为这个时候是左闭右开搜索区间,即搜索区间是[left,right),终止条件是left == right,因为[1,1)是没有意义的,可以停止搜索了。2.因为搜索区间是[left,right],right边界可以等于后一个元素的索引。锁定target,收缩左边界的时候使用:left = mid + 1,最后一次收缩会导致下标+1,所以最后需要left - 1。2.因为搜索区间是[left,right),right边界不包含最后一个元素的,所以right搜索边界要比最后一个元素下标+1.原创 2023-12-27 18:14:06 · 1305 阅读 · 0 评论