//returnasea
//returnasea
全部文章
分类
题解(106)
归档
标签
去牛客网
登录
/
注册
//returnasea的博客
全部文章
(共106篇)
题解 | #数组中出现次数超过一半的数字#
创建一个哈希数组,vec[i]表示数字i出现的次数。 class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) { vector<int> vec(10001,...
C++
2021-10-05
0
378
题解 | #平衡二叉树#
求树的深度,当深度差大于1时不平衡;同时还需要左子树和右子树也是平衡的。 class Solution { public: int height(TreeNode* pRoot){ if(pRoot==nullptr) return 0; int left_h...
C++
2021-10-05
0
378
题解 | #单链表的排序#
先把单链表拆分成结点,并将这些结点保存到vector中,自定义排序lambda对象,对vector进行sort,最后遍历vector把排序好的结点链接起来。注意拆分链表后,每个结点的next为空。 /** * struct ListNode { * int val; * struct List...
C++
2021-10-05
0
367
题解 | #判断回文#
双指针,相向而行。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param str string字符串 待判断的字符串 * @return bool...
C++
2021-10-05
0
313
题解 | #二叉树的最大深度#
root的最大深度=max(左子树的最大深度+1,右子树的最大深度+1),递归求解。 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ class ...
C++
2021-10-05
0
342
题解 | #岛屿数量#
深度优先dfs。遍历矩阵,从矩阵中的每个位置开始dfs周围是'1'的位置,dfs的同时修改'1'为'0'作为标记。思路在于每次走遍一块陆地,并将这一块陆地修改为海洋。 class Solution { public: /** * 判断岛屿数量 * @param grid ...
C++
2021-10-05
0
462
题解 | #输出二叉树的右视图#
先建树,再层次遍历。根据前序遍历和中序遍历建树,递归左前序左中序,递归右前序右中序;通过队列层次遍历,并保存每一层的最后一个元素。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * ...
C++
2021-10-05
0
399
题解 | #接雨水问题#
双指针法:除了第一列与最后一列不接雨水,计算其他每一列能接到的雨水,第i列能接到的雨水=min(i左边的最高值,i右边的最高值) – 第i列本身的高度。O(n^2)可能会超时。 动态规划:递推的计算两个数组,left_max保存左边最高的高度,right_max保存右边最高的高度。第i列能接到的雨水...
C++
2021-10-05
0
488
题解 | #字符串的排列#
回溯(深度优先搜索)。回溯求排列使用了一个标记数组used。最终的结果用set去重。 class Solution { public: void dfs(string& str,vector<string>& result,string& path,vec...
C++
2021-10-04
0
298
题解 | #合并k个已排序的链表#
先将k个有序链表的结点全部保存在vector中,注意在存结点的过程中保证每个节点的后继为空,使其称为独立的单独结点;然后自定义排序lambda对vector中的元素排序,最后将这些元素建成一个链表。 /** * Definition for singly-linked list. * struc...
C++
2021-10-04
0
469
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页