retyrn
retyrn
全部文章
分类
题解(3)
归档
标签
去牛客网
登录
/
注册
retyrn的博客
全部文章
(共206篇)
题解 | #牛群旋转# 循环链表应用题
知识点链表题意分析链表循环右移k位,链表长度为n,那么右移k次和右移k%n次的效果相同。因此虽然k的范围很大,但是取模之后 k % n相当于把链表的后k%n个元素移到链表的头部,这里实现上可以用两个指针,一个先移动k%n次,然后两个一起移动,当前面的移动到了末尾,前面的指针就到了倒数第k%n的位置,...
2023-07-19
1
307
题解 | #牛牛队列成环# 哈希表应用题
知识点哈希表 链表思路假设不存在环,那么对应的是一条链,每头牛指向它的后面那头牛,指向的牛的编号不会出现重复如果出现重复,证明存在环。判断是否出现过,可以开一个布尔数组或者哈希表判断。时间复杂度每次哈希表查询和插入的时间复杂度是遍历一遍链表的复杂度为总体时间复杂度为AC code (c++) /**...
2023-07-19
0
308
题解 | #相逆叶子# 二叉树遍历
知识点二叉树思路要我们判断两棵二叉树的叶子结点是不是从左到右逆序的,我们只需要遍历二叉树,从左到右找到叶子结点的值加入序列,最后比较即可。遍历二叉树时,先左子树后右子树即可做到访问到叶子结点是从左到右的。时间复杂度访问每个结点最多一次,和节点个数成正比 AC code (C++) /** * st...
2023-07-19
0
335
题解 | #牛群的能量值# 模拟进位加法
知识点链表 模拟思路链表形式的模拟进位的大整数加法, 维护一个进位值carry由加法的进位我们可以知道下一次的carry值是由上一次的k除以10得到的, 当前位置的值是 k % 10当两个链表都没到达末尾, k值由上一次剩下的carry + l1->val + l2->val组成l1到达...
2023-07-19
0
289
题解 | #牛的体重排序# 分治解法
知识点递归 分治思路两个有序数组,一个长度为n,一个长度为m,找到两个数组归并后的中位数。根据中位数的定义,假如是奇数,那么需要找到第小的数作为答案;假如是偶数,那么需要找到第 小的数和小的数的平均数作为中位数。因此我们需要实现一个函数find可以在log时间内找到两个有序数组的第k小的数。对于找两...
2023-07-18
0
312
题解 | #调整牛群顺序# 链表模拟题
知识点链表模拟题意分析题面有问题, 按照样例题意应该是将倒数第n个值移到链表末尾首先需要找到倒数第n个链表, 这可以找到两个指针p和q, 起初指向头结点; 先把一个指针移动n次, 然后再把两个指针一起向后移动, 直到前面那个到达了链表末尾, 前面的指针到达了倒数第n个位置实现上, 建立虚拟头结点, ...
2023-07-18
1
232
题解 | #合并两群能量值# 归并思路 链表应用题
知识点归并 链表题意解析本题需要把两个有序链表合并成一个, 这可以使用一个归并的思路, 只不过数据结构由数组变成的链表, 但是原理是一样的先建立虚拟链表头结点, 之后存在以下三种情况1. 两个链表都没有走到末尾, 选一个值较大的结点加入链表末尾, 指向该结点的指针向后移动2. 第一个链表没有走到末...
2023-07-18
1
288
题解 | #牛的体重统计#
知识点哈希表思路说明利用哈希表统计不同体重的牛的个数; 遍历哈希表找到众数时间复杂度遍历一遍数组的时间复杂度为unordered_map插入的时间复杂度为遍历哈希表的时间复杂度为综合时间复杂度为AC code (C++) #include <unordered_map> class So...
2023-07-18
0
322
题解 | #牛名生成器#
知识点深度优先搜索DFS / 宽度优先搜索BFS思路说明数据范围很小, 可以确定为可以用暴搜解决; 枚举每一位可以填的字母, 逐个字母向后填, 由于字母表table给出的字母顺序就是由小到大的, 逐个填入的结果一定是符合字典序小优先的具体实现上可以用bfs或者dfs实现AC Code (C++) B...
2023-07-18
0
324
题解 | #牛群分隔# 链表应用题
知识点链表思路解析思路很简单, 建立两个虚拟头结点, 依次遍历原链表, 小于x的接在一边, 大于等于x的接在另外一边最后把两个链表连起来即可时间复杂度由于只遍历一次链表 AC code (C++) /** * struct ListNode { * int val; * struct List...
2023-07-18
0
251
首页
上一页
12
13
14
15
16
17
18
19
20
21
下一页
末页