牛客785764796号
牛客785764796号
全部文章
分类
题解(22)
归档
标签
去牛客网
登录
/
注册
牛客785764796号的博客
全部文章
(共21篇)
题解 | #把二叉树打印成多行#
层次遍历,用队列,如果还要用到层数,用一变量刻画队列的每一层的大小,输出一个数,就--,为0就表示这一层结束了,如果此时队列还没为空,level+1。代码: class Solution { public: vector<vector<int> > Print...
2021-07-08
0
337
题解 | #二叉树的下一个结点#
题目给定结点,求按照中序遍历的顺序,它的下一个结点是什么,除了left和right指针外,还是指向父结点的next指针。最容易想到的暴力解法:1、根据next,找到根结点;2、递归获得中序遍历序列;3、找到给定的结点,输出下一个结点即可; 改进解法(我之前没注意pNode是给定结点,一直以为是根结点...
2021-07-08
0
346
题解 | #重构树#
树重构,第一时间想到递归,既然要用到递归,必然要确定根,左子树和右子树,可以根据给定的前序遍历和中序遍历序列获得。这里注意两点:1、每次递归若都用一个vector的话,空间消耗大,改为传递子数组的上下界;2、子数组上下界确定,依赖于根节点确定,千万不能根据根节点的下标确定上下界,可以根据根节点下标推...
2021-07-08
0
338
题解 | #数值的整数次方#
随便写写,只想用递归来写,很简单幂可以看作连乘,因此考虑用递归。代码: class Solution { public: double Power(double base, int exponent) { if(exponent == 0) return 1; ...
2021-07-07
0
321
题解 | #矩形覆盖#
看了别人的题解,可以发现规律,这边尝试用递归来做。代码(可能不够优美) class Solution { public: int rectCover(int number) { if(number == 1) return 1; if(number == 2)...
2021-07-07
0
266
题解 | #链表中倒数最后k个结点#
小白混混欲睡:这一类问题:思路很简单,找链表中最后K个结点,需要解决的问题,如何定义K。1、双指针,指针之间的距离为K,那么K即可定义。2、我看别人用了栈,栈能够去除后K个结点,但需要注意,链表重新构造,next指针的反向的。3、我个人对递归比较感兴趣,具体就不详细说了,可以看题解。代码: clas...
2021-07-07
0
334
题解 | #左旋转字符串#
小白解题又是这种带顺序的字符数组的变换,老样子,考虑单个又累又不好用,创建新的数组,讲符合要求的放入即可。需要注意vector与string之间的转换。代码: class Solution { public: string LeftRotateString(string str, int n...
2021-07-06
0
386
题解 | #调整数组顺序使奇数位于偶数前面#
小白解法:思路,若是选出奇偶,然后插到前面,太麻烦,后续还要移动后面的数字,考虑另建数组,选出奇偶放入。我的解法:先找奇数,放入数组,再找偶数放入数组,这样做法时间复杂度O(2N),空间复杂度O(N)。代码如下: class Solution { public: /** * 代码中...
2021-07-06
0
252
题解 | #替换空格#
替换空格首先我们指导‘%20’包含3个字符,也就意味着按字符添加需要添加3次。遍历字符串,找到空格字符,一个字符替换3个字符,会导致字符串长度变化,后面的字符要进行移位,很麻烦。考虑申请一个可变数组,将非空格字符放入,当遇到空格字符,将‘%’,‘2’,‘0’放入,然后再将其转化为字符串。C++:ve...
2021-07-06
0
336
题解 | #扑克牌顺子#
扑克牌顺序,建议看题解,我的方法太蠢,但是没有用到set()和sort()内置函数。思路:五个数首先除了0之外,必须无重复,然后最大值与最小值之间的间距必须小于3(0,1,2都可以用万能数补充)。重复数,首先想到set;然后可以想到sort,如果相邻两者相等,则说明有重复数。我的笨蛋解法: clas...
2021-07-06
0
295
首页
上一页
1
2
3
下一页
末页