大菠萝侦探
大菠萝侦探
全部文章
题解
归档
标签
去牛客网
登录
/
注册
大菠萝侦探的博客
全部文章
/ 题解
(共11篇)
题解 | #删除有序链表中重复的元素-II#
描述 给出一个升序排序的链表,删除链表中的所有重复出现的元素,只保留原链表中只出现一次的元素。首先提出这个题比较不严谨的地方,代码中一开始给出的注释中,结构体的定义是不严谨的,虽然注释中定义的结构体是下面的样子 /** * struct ListNode { * int val; * ...
2021-07-10
5
1268
题解 | #包含min函数的栈#
描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数,并且调用 min函数、push函数 及 pop函数 的时间复杂度都是 O(1)push(value):将value压入栈中pop():弹出栈顶元素top():获取栈顶元素min():获取栈中最小元素 算法 用一个栈 s...
2021-07-01
2
1064
题解 | #顺时针打印矩阵#
描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 算法 我们的目标是按照图中的数字大小顺序访问每个位置的值,然后按顺序保存每个点。 方法一 我们定义一个从 (0, 0) 出发的点,当遇到边界或者访问过的点之后就向右转,已经访问过的点就把它的值赋为一个不可能的值 inf。如下图,我...
2021-07-01
2
1051
题解 | #二叉树的镜像#
描述 操作给定的二叉树,将其变换为原二叉树的镜像。 算法思路 这道题采用的是自顶向下的递归蓝色子树是已经完成交换的子树,绿色子树是即将进行交换的左子树,绿色子树右边的橙色子树是将要和绿色子树交换的子树 对于当前的 root 交换左右子树 交换之后如下 对于每个子树的左右子树重复上面第一步的操作...
2021-07-01
1
820
题解 | #树的子结构#
描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 基本思路 按照树 A 中每个节点的遍历顺序比较当前节点和 B 的根节点是否相同,如果相同就按照 B 的结构遍历他们的每个节点。例子是题目所给的样例: A : {8,8,#,9,#,2,#,5} B ...
2021-07-01
5
1257
题解 | 反转链表
描述 输入一个链表,反转链表后,输出新链表的表头。 方法一 因为链表结尾是 null,所以让 pre 的值是 null, p 就表示我们的头部 因为 p 的 next 成员马上就要指向 pre, 如果不保存 p 的下一个节点就会使其丢失,所以通过临时变量 t 保存它 让 P 的 next 成员...
2021-06-26
97
7005
题解 | 合并两个排序的链表
描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 算法 比较方便的做法是设置一个虚拟节点 fake,而它的 next 指向的地址才是真正的表头,然后开始的时候将它作为 pre 指针。在循环中,每次都将要接入的新节点接到 pre 后面,然后更新 pre...
2021-06-23
5
2430
题解 | 链表中倒数最后k个结点
描述 输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。 数组法 把每个节点装进数组中,访问倒数第 k 个元素。 class Solution { public: ListNode* FindKthToT...
2021-06-22
15
2162
题解 | 调整数组顺序使奇数位于偶数前面
描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 算法 题目要求图解:具体的做法就是把每个数加入符合条件的数组,如下图,橙色代表奇数数组,绿色代表偶数数组,最后再合并两个数组...
2021-06-22
2
1334
题解 | 数值的整数次方
描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0。不得使用库函数,同时不需要考虑大数问题,也不用考虑小数点后面0的位数。 实际上就是实现一个计算 a ^ b 的函数。 朴素算法 让 expo...
2021-06-20
0
754
首页
上一页
1
2
下一页
末页