觅杳
觅杳
全部文章
题解
归档
标签
去牛客网
登录
/
注册
坠落星空
风息时休起浪,岸到处便离船
全部文章
/ 题解
(共25篇)
题解 | #二叉树的下一个结点#
这大概是最笨的方法了,一个情况一个情况判断。 中序遍历:左根右 若为左叶子,直接返回根结点pNode.next即可; 若存在右子树: (1).其父节点为左子树 - 其本身为右叶子,返回父节点的父节点(左子树遍历结束,该到根) - 其本身为右子树,返回其右子树的左叶子,没有就返回右子树(其为根,则...
Java
二叉树
2021-12-14
0
378
题解 | #二叉树的深度#
> 一种是二叉树的后序遍历; > 一种是队列,即广度遍历。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left...
C++
2021-10-30
0
352
题解 | #求1+2+3+...+n#
这题目显然是在考察发散思维 class A { private: static int N; static int sum; public: A() { N++; sum = sum + N; } static void re...
C++
2021-10-23
1
344
C++题解 | #链表中倒数最后k个结点#
大致分析后,不难发现此处为一个递归过程。 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ cl...
2021-08-30
0
477
C++题解 | #链表中倒数最后k个结点#
那首先,最简单的做法是首先遍历一遍链表,得到链表的结点总个数(长度)为n,之后将指向队首的指针向后移动n-k+1次即可得倒数第k个结点。但是这样呢,需要遍历链表两次,并不是很满意。 则其次设定双指针,二者同时指向队首。第一个指针首先移动k-1次,之后两个指针同时开始移动,当第一个指针到达链表尾部时,...
2021-08-29
1
548
C++题解 | #数值的整数次方#
此题思路简单明了,重点在于:考虑问题的全面性,即要考虑到当底数为0以及指数为0和负数的情况,将其单列出来。注意点:1.由于计算机储存数据的精度有限,比较两个浮点数是否相等时,不能直接用等于,而是要考虑二者之间的差值,是否小于一个极小的值,若是,则可认为二者相等。2.考虑到封装性,可以将计算乘方的函数...
2021-08-24
1
489
C++题解 | #二进制中1的个数#
此题思路较为巧妙。 若直接做右移位运算,则当为负数时,对其右移一位,为了保持负数,则其最左端会替换为1,而非正数的0。则继续进行右移,会导致最后负数变成0xFFFFF,故而要另寻出路。 将数据按照位数由低到高与1做与运算,若该位是1,与运算结果必为1.即1需要持续左移直到判断完毕,那么3...
2021-08-20
1
447
C++题解 | #矩形覆盖#
此题显然与斐波那契数列不能说毫不相干,只能是一模一样。以 的矩形为例,其可以在左端竖着填充一个 的小矩形,之后便剩下 的大小,也可在左上端横着填充一个小矩形,那么左下端很显然也必须横着填充一个,即只剩下 的矩形待填充。故而可知,故而,等同于斐波那契数列。则 class Solution { pub...
2021-08-19
0
467
C++题解 | #旋转数组的最小数字#
题目本身暴力法遍历数组即可求解,但其时间复杂度相对而言较大,且根据旋转数组的特点,可知时间复杂度还有减小的余地,即主体采用二分法。特殊情况,则专门考虑遍历。整体程序虽增多,但其时间复杂度却降低了。 class Solution { public: int minNumberInRotateA...
2021-08-14
0
514
C++题解 | #替换空格#
本题要求替换空格为'%20'(空格可能会在格式不兼容时,成为乱码),即将一个字符替换为一个字符串。若按正常从前按往后替换,则为避免覆盖空格其后字符,需要将其后字符后移两位,则会直接导致整个时间复杂度达到O(n^2)。况且在转移过程中,极有可能导致同一个子字符串的多次后移。 故而,此处采用从后往前替换...
2021-07-27
0
587
首页
上一页
1
2
3
下一页
末页