牛客必刷101
这里会发布《牛客必刷101》中的所有题解。
翡冷翠之夜
不救不赎,不醒不悟。
展开
-
BM6 判断链表中是否有环(快慢指针模板题)
输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。-1代表无环,其它的数字代表有环,这些参数解释仅仅是为了方便读者自测调试。实际在编程时读入的是链表的头节点。数据范围:链表长度 0≤𝑛≤100000≤n≤10000,链表中任意节点的值满足 ∣𝑣𝑎𝑙∣<=100000∣val∣<=100000。可以看出环的入口结点为从头结点开始的第1个结点(注:头结点为第0个结点),所以输出true。要求:空间复杂度 𝑂(1)O(1),时间复杂度 𝑂(𝑛)O(n)原创 2024-05-12 21:10:25 · 147 阅读 · 0 评论 -
BM7 链表中环的入口结点(快慢指针模板题)
输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台会根据第二段是否为空将这两段组装成一个无环或者有环单链表。思路:建立在上一道基础上,如果已知成环,慢指针移动到链表头部,快慢指针以1的步长去移动,直到两者相遇,有环必相遇。数据范围: 𝑛≤10000n≤10000,1<=结点值<=100001<=结点值<=10000。给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。原创 2024-05-12 22:20:34 · 314 阅读 · 0 评论 -
BM4 合并两个排序的链表
【代码】BM4 合并两个排序的链表。原创 2024-05-12 17:12:55 · 189 阅读 · 0 评论 -
BM5 合并k个已排序的链表
数据范围:节点总数 0≤𝑛≤50000≤n≤5000,每个节点的val满足 ∣𝑣𝑎𝑙∣<=1000∣val∣<=1000。需要借助BM4写的代码,看我上一篇博客。然后从左向右每两个链表之间一一合并,得到最终结果。合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。要求:时间复杂度 𝑂(𝑛𝑙𝑜𝑔𝑛)O(nlogn)原创 2024-05-12 20:39:31 · 171 阅读 · 0 评论