牛客313925129号
牛客313925129号
全部文章
分类
题解(51)
归档
标签
去牛客网
登录
/
注册
牛客313925129号的博客
全部文章
(共51篇)
题解 | #二叉树的前序遍历#
题意理解 输入一个二叉树,通过先序遍历将节点值依次放入数组并输出。 方法一 递归 由于是先序遍历,我们先输出当前节点的值,再遍历其左孩子,最后遍历其右孩子。对于每个孩子也是同样的操作。递归边界是当前节点为空。 先序遍历的顺序示意图如下: 具体代码如下: /** * struct TreeNode...
C++
2022-03-07
0
436
题解 | #字符串的全部子序列#
题意理解 输出一个字符串的所有子串。注意重复出现的子串只保留一个。 方法一 深度优先搜索 每一个字符都有2种情况,选择或者不选择。我们遍历字符串s中的所有字符,每个字符用递归尝试两种调用(选或者不选)。递归的边界条件是遍历到最后一个字符,将得到的子串加入到答案中,然后再回退并进行另一条支路上的递归。...
C++
2022-03-07
0
520
题解 | #给单链表加一#
题意理解 用链表表示一个数字,把该数字加1,再用链表的格式输出。 方法一 递归 因为这里是单向链表,且最低位在链表的尾端。如果指针遍历到链表尾端做加法后,处理进位时无法向前传递。所以考虑使用递归的方法,cal()函数返回这一位上产生的进位。 在该函数中,我们先通过递归调用获得前一位产生的进位,然后计...
C++
2022-03-07
0
561
题解 | #二进制求和#
题意理解 把两个字符串格式的二进制数字相加,求和的结果也用字符串的二进制数表示。 方法一 高精度加法 把字符串二进制数字转换成数组格式,每一位对应于数组中的一个整型元素。两个数组a,b从位置0开始表示二进制数的最低位(即倒序),在每一个位置上做加法操作,并计算是否要进位。当较短的数字的每一位都加完后...
C++
2022-03-06
0
549
题解 | #两两交换链表的节点#
题意理解 从前往后,将链表中的每两个节点交换位置。注意第1、2节点交换后,原来的第1个节点不用和第3个节点交换。 方法一 使用多个指针模拟交换节点位置的过程,指针p,q分别指向当前交换位置的两个节点,指针behind指向它们之前的一个节点。因为p,q交换位置后,behind->next发生了改...
C++
2022-03-05
0
539
题解 | #岛屿的最大面积#
题意理解 地图是一个矩阵,每个格子里面是0或者1。格子的上下左右视为相邻,即连在一起。要求最大的岛屿面积就是求连在一起的1的个数最多是多少。 方法一 深度优先搜索 对于每一个格子,我们有上下左右四个方向,如果相邻的格子是1,那么就可以向这个方向移动,面积加1。 我们使用pass数组记录每个格子是否遍...
C++
2022-03-04
0
611
题解 | #判断是不是二叉搜索树#
题意理解 二叉搜索树的要求,每个节点大于其左子树中所有节点,且小于其右子树中所有节点。 方法一 前序遍历 对于每一个结点,我们判断它是否满足搜索树的条件,再依次判断其左孩子和右孩子是否满足。在判断节点是否满足条件时,分两种情况讨论: 1)该节点为左孩子,那么它要小于其父节点,且大于其父节点需要大于的...
C++
2022-03-03
0
416
题解 | #最长公共子数组#
题意理解 求两个数组最长的公共连续子数组的长度。 方法一 动态规划 使用一个二维数组dp,其中dp[i][j]表示A中子串以A[i]结尾且B中子串以B[j]结尾时,它们满足是公共子串的长度。显然,当两者不等时,以它们结尾的子串不可能是公共子串;当两者相等时,可以使前面的公共子串的长度加1。状态转移方...
C++
2022-03-02
0
423
题解 | #单词拆分(二)#
题意理解 把一个字符串s拆分为若干个子串,要求每个子串都是数组dic中的某个元素。拆分的方***有多种,要求输出所有的方法,每一种拆分方法用空格将子串隔开从而形成一个字符串。 方法一 深度优先搜索 看到题目要求的数据较小,考虑使用深度优先搜索枚举所有的可能性。如果s可以被正确拆分,说明其头部的一段子...
C++
2022-03-02
2
527
题解 | #给数组加一#
题意理解 用数组从前往后每个元素分别表示数字的从高到低的每一位,现在对表示的数字进行加1操作,要求得到的结果仍要用数组表示。 方法一 模拟 数组元素的个数(表示数字的位数)可能有500个,因此不考虑将数字还原成整型。我们使用列竖式计算的方法,将1和数组的最后一个元素对齐并相加,如果产生进位则继续把前...
C++
2022-03-01
0
449
首页
上一页
1
2
3
4
5
6
下一页
末页