妄想者
妄想者
全部文章
分类
归档
标签
去牛客网
登录
/
注册
妄想者的博客
全部文章
(共20篇)
题解 | #牛群编号的回文顺序#
class Solution { public: // 解题思路:1,利用快慢指针找到链表的中点 // 2,利用定义的反转链表函数,把中点以后的链表反转 // 3,利用指针遍历来比较中点前后的链表 // 链表反转 ListN...
2023-10-15
0
281
题解 | #牛的品种排序IV#
这题的解法与NB12 牛群的身高排序一致,更详细的见上一题 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ c...
2023-10-13
0
255
题解 | #牛群的身高排序#
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /*...
2023-10-10
0
259
题解 | #牛群的合并#
// 解题思路:1、定义一个普通的链表合并函数来实现两个链表的合并; // 2、利用二分法把所给的K个链表打散为两两一组----分治的思想 // 3、再利用合并函数把每组链表合并,合并完一层再往上合并,直到顶端 /** * struct ListNode { ...
2023-10-09
0
291
题解 | #牛群旋转#
// 解题思路:1,先计算链表的长度,根据该长度判断k是否超过该长度 // 2,在获得更新的k后,寻找链表的转折点 // 3,在该转折点处打断原来链表,把前面部分的链表衔接到后面部分的尾部 // 4,返回转折点后面部分的链...
2023-10-08
0
220
题解 | #牛牛队列成环#
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /*...
2023-09-26
0
311
题解 | #牛群的能量值#
解题思路:模仿加法运算,每位相加,设计一个进位来保存是否进一,直到两个链表轮巡完。分三个步骤的同时,需要考虑两个子链表可能为空的情况:1,两个子链表非空时,获取其节点值相加,并记录进位,一直轮巡完到其中一个子链表; 2,若此时剩下的是子链表1非空,那么就对子链表1和进位相加,直至轮巡完;3,若此时剩...
2023-09-25
0
225
题解 | #合并两群能量值#
// 用一个新的哨兵头来合并两个链表,分两种情况: // 1, 若链表1的节点大,NewHead的下一个就链接上他,链表1的节点往后走; // 2, 若链表2的节点大,NewHead的下一个就链接上他,链表2的节点往后走; // 3, 新链表的节点也需要往后走,然后重复1和2...
2023-09-24
0
289
题解 | #牛群的重新排列#
解题的思路:1,先找到需要反转的片段的开始点和结束点;2,按照节点进行正常的链表反转;3;进行链表的拼接,有三个极端情况需要另外处理:1)链表大小为1,或者左右标签相等;2)左标签等于链表的第一个节点;3)右标签等于链表的最后一个节点; class Solution { public: /*...
2023-09-22
0
238
题解 | #牛群的重新分组#
解题思路:主要利用递归的思想,也就是说把每个片段(K划分)重复反转:1,找出要反转的片段,以确认每片段反转的结束;2,按照正常的链表翻转流程,把链表翻转;3,利用递归的思想来完成下一个片段的翻转,在翻转前需要完成链表的拼接。 /** * struct ListNode { * int val; ...
2023-09-20
0
291
首页
上一页
1
2
下一页
末页