梦会绽放
梦会绽放
全部文章
分类
题解(16)
归档
标签
去牛客网
登录
/
注册
梦会绽放的博客
人若无名,专心练剑
全部文章
(共4篇)
题解 | Java版 快排《单链表的排序》
思路:快速排序。 要求时间复杂度为 O(nlogn),对我们选取的排序算法做出了限制,我们知道时间复杂度为 O(nlogn)的算法有快排、堆排序、归并排序。这里考虑使用快排。 复杂度 平均时间复杂度O(nlog n),空间发复杂度O(n) 图示 代码(JAVA实现) public class ...
Java
递归
链表
快排
2022-01-31
14
896
题解 | #判断链表中是否有环#
算法思路:考虑使用快慢双指针。慢指针每次走一步,快指针每次走两步,如果链表有环,快、慢指针一定会相遇指向同一个节点(可理解为环型跑道速度快的一定可追上速度慢的),则返回true;如果链表无环,遍历完整个链表,返回false。 C语言实现: bool hasCycle(struct ListNode*...
C
双指针
链表
2021-12-31
0
292
题解 | #反转链表#
思路:充分利用数组的特点。 注意到题中链表长度 0<=n<=100和链表节点的值满足|val|<=100的特点, 优先考虑建立一个长度为201的计数数组arr[],初始化为0,以val值作为数组下标,arr[val]表示值为val的节点的个数,对链表进行一次遍历, 遍历到值为v...
C++
链表
数组
计数
2021-12-30
0
331
【剑指offer】孩子们的游戏(圆圈中最后剩下的数)
【建议看书上题解】一种方法是用环形链表模拟圆圈的经典解法; class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } publi...
链表
模拟
基础数学
2019-12-14
19
2482