ZX2021
ZX2021
全部文章
分类
未归档(1)
题解(72)
归档
标签
去牛客网
登录
/
注册
ZX2021的博客
程序员的自我修养
全部文章
(共73篇)
题解 | #二叉树的最大深度#
如果root节点为空则返回0,否则递归求左右孩子的高度,求出以后求两者的较大者并且深度加1 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * };...
二叉树
2021-08-05
0
474
题解 | #平衡二叉树#
借鉴一个Java版本的题解,如果已经不平衡则返回-1,否则返回高度;检查最后的结果是否为-1即可。 class Solution { public: bool IsBalanced_Solution(TreeNode* pRoot) { return get_depth(pR...
二叉树
2021-08-05
0
431
题解 | #包含min函数的栈#
push、pop的功能可以通过一个栈来解决,min的功能可以另一个栈来保存,栈里面存储的都是当前层到最底层的最小值,每次插入时都去比较插入较小值。 class Solution { public: void push(int value) { m_normal.push(va...
栈
2021-08-05
0
530
题解 | #在旋转过的有序数组中寻找目标值#
二分法判断哪边有序,哪边有序就固定哪一边并且移动另一边的指针,每次移动一格。对于无序的一边,每次移动一格进行检查。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
二分法
2021-08-05
0
481
题解 | #求平方根#
定义一个整数ans,循环求这个数的平方ansans,与x进行比较,直接ansans大于x时退出,返回ans-1即可 class Solution { public: /** * * @param x int整型 * @return int整型 */...
sqrt
2021-08-05
0
520
题解 | #数组中相加和为0的三元组#
数组进行升序排序后,从左向右固定某一个数,left/right两个指针分别指向另外两个数,left指向最左端,right指向最右端,对三个数进行求和,如果小了就把left指针向右移,如果大了就把right指针向左移,如果和刚好是0则记录并且继续探索(left向右移且right向左移时可能存在多组解)...
数组
双指针
2021-08-04
0
649
题解 | #合并两个排序的链表#
从链表1和链表2的头部选择一个小的节点插入到新节点中,new_head记录新链表的头部,new_tail记录新链表的尾部。第一个插入的节点就是new_head,每次插入都去更新new_tail。某一个链表结束以后,总有一个链表剩下某些节点,再进行遍历插入即可 /* struct ListNode {...
链表
2021-08-04
0
489
题解 | #最长回文子串#
dp[i][j]表示从i到j是否为回文。如果是回文,那么字符串的两端一定相等,并且除开首尾两个字符剩下的子串也一定是回文。用i表示最左端,d表示字符串长度,则最右端为j=i+d-1。则有: if(A[i] == A[j] && dp[i+1][j-1] == true) ...
回文
动态规划
动态规划
动态规划
2021-08-04
1
495
题解 | #螺旋矩阵#
指针分别从左向右、从上到下、从右到左、从下到上进行遍历。遍历完可能还有剩下的一行或者一列,再遍历完即可。 class Solution { public: vector<int> spiralOrder(vector<vector<int> > &...
数组
指针
2021-08-03
0
484
题解 | #进制转换#
进制转换采用除K取余法,余数用栈保存,最后全部出栈,根据出栈的数去取应该转换的数字或者字母。如果是负数则将负数转换成正数,并记flag为true,最后在输出时先判断flag是否为true,如果是的话先加一个负号。 class Solution { public: /** * 进制转...
进制转换
栈
2021-08-03
0
641
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页