牛客最菜应届生
牛客最菜应届生
全部文章
分类
题解(38)
归档
标签
去牛客网
登录
/
注册
牛客最菜应届生的博客
全部文章
(共38篇)
题解 | #最小的K个数#
思路 参考剑指offer1、首先使用快排的思想,对一个数组进行分割,大于某个值的在其右侧,小于某个值的在其左侧,该函数(Partition)返回一个索引,代表选择的数字的下标(可能有点绕)。2、然后就是根据这个返回的索引和k-1(需要k个数,下标范围就是0~k-1)比较,若返回的index<k...
快速排序
数组
2021-07-11
0
331
题解 | #树的子结构#
树的子结构 思路 1、原始函数的功能是:判断root1的树中是否存在root2,因此当遇到节点值不相等的时候,判断root1的左子树是否包含root2 或者 root1的右子树是否包含root2的树(递归) 2、辅助函数的功能:判断以当前节点为根的树是否相等,若节点相等,则继续比较对应的左右节点是否...
二叉树
2021-07-11
0
328
题解 | #之字形打印二叉树#
思路 和按层打印二叉树一样,也是广度优先(队列实现)注意的是需要指定一个奇偶位置,根据这个奇偶来设置保存的方式(是否reverse) 代码 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode...
二叉树
广度优先
2021-07-10
0
278
题解 | #反转字符串#
丑数 思路 1、使用一个数组保存之前的丑数2、更新下一个丑数的时候只需要比较三个值即可3、所以,程序的核心就是维护好三个值(对应的下标) 代码 class Solution { public: bool isUgly(int x ){ while(x%2==0){ ...
数组
2021-07-10
0
327
题解 | #数字在升序数组中出现的次数#
二分法查找 注意:1、升序--->二分2、先找到一个数,然后向两边找3、注意保存mid的值,方便作为反向查找的起点4、多次统计注意区分 代码 class Solution { public: int GetNumberOfK(vector<int> data ,int k)...
二分法
2021-07-04
0
272
题解 | #实现二叉树先序,中序和后序遍历#
递归实现二叉树前、中、后序遍历 注意:三者的区别就是处理根节点的时间 代码 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ cl...
深度优先
二叉树
遍历
2021-07-03
0
301
题解 | #二分查找-II#
二分查找 注意:1、二分查找的while(left<=right)2、更新起始终止点:left = mid+1; right = mid-1; 代码 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法...
双指针
2021-07-02
0
354
题解 | #和为S的两个数字#
双指针 注意:1、双指针调整位置2、更新最小乘积 class Solution { public: vector<int> FindNumbersWithSum(vector<int> array,int sum) { int start =0; ...
双指针
2021-07-02
0
397
题解 | #从上往下打印二叉树#
广度优先访问二叉树 思路:广度优先,使用队列,注意判断当前值是否为空指针 代码 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) :...
二叉树
广度优先
2021-07-02
0
316
题解 | #对称的二叉树#
递归求解 思路:创建一个函数,具有如下特点:1、实现功能:判断两个节点是否对称(值相等,且子节点对称)2、终止条件:两个节点只要不是值相等就终止3、下一次递归:两个节点值相等,此时还要判断对应的子节点是否对称(新一轮递归) 代码 /* struct TreeNode { int val; ...
递归
二叉树
2021-07-02
0
262
首页
上一页
1
2
3
4
下一页
末页