- 博客(2)
- 收藏
- 关注
原创 双指针:剑指 Offer 52. 两个链表的第一个公共节点
个人总结,可以考虑用双指针的地方 1.链式结构 2.可以通过一个指针遍历整个表,存入扩展存储空间中,然后再依次取出或者取出某特定的一个 比如返回链表的倒数第k个节点,可以让一个指针先走k步,然后两个指针一起走,前面的指针到尽头之后,后面的指针停在倒数第k个上 3.存在两个节点之间比较的情况 4.涉及有序链表,迭代 比如把两个有序排列的链表合并成一个有序的 输入两个链表,找出它们的第一个公共节点。 找公共节点这个题,挺难想到的,一般方法都是要额外存储,或者时间复杂度很高...
2021-09-15 21:26:53
98
原创 给快速排序,随机化快速排序,双路快速排序写了一些详细注释(java)
为了把这玩意整明白写了不少注释,先贴上来吧,回头有时间慢慢解释 快速排序在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快 算法步骤 从数列中挑出一个元素,称为 "基准"(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分.
2021-08-30 22:18:23
150
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人