StevenChu
StevenChu
全部文章
分类
大数据开发(2)
归档
标签
去牛客网
登录
/
注册
大数据开发实践
分享大数据的开发和实践
全部文章
(共8篇)
【数据结构和算法】BFS和DFS两种方式解决
来自专栏
BFS打印 二叉树的的层次遍历就是一层一层的遍历,也就是我们俗称的BFS(宽度优先搜索算法(又称广度优先搜索)),之前在373,数据结构-6,树 中讲过树的宽度优先搜索,最简单的方式就是使用队列。但这题打印的时候多了一个条件,就是不能一直从一个方向打印,要先从左边打印然后再从右边打印……,就这样交替...
算法
2021-08-03
6
905
【数据结构和算法】递归和非递归解路径总和问题
来自专栏
递归求解 这题让判断从根节点到叶子节点的所有路径中,有没有和等于sum的,如果看过之前讲的《442,剑指 Offer-回溯算法解二叉树中和为某一值的路径》 ,再来看这一题就觉得这题有点简单了。第442题要求的是把所有的和等于sum的路径都打印出来,而这题只要判断有一个路径的和等于sum即可。 我们可...
算法
2021-08-03
22
1040
【数据结构和算法】4种方式解决
来自专栏
1,递归方式解决 这题没说sum是正数还是负数,也没说树中节点的值有没有负数。我们要做的是从根节点到叶子节点遍历他所有的路径,返回他所有路径中和等于sum的节点,这里有两种实现方式,一种是减,一种是加。减就是从根节点开始,用sum不断的减去遍历到的每一个节点,一直到叶子节点,在减去叶子节点之前查看s...
算法
2021-07-19
15
1037
题解 | #最长递增子序列#
来自专栏
思路: 先找最长递增子序列长度 再根据长度逆向得到序列(逆向的原因是字典序更小,若是小值跑到后面去的情况,同样长度大值跑后面只会增加子序列长度) 要找到最长的递增子序列长度,常用方法是动态规划,dp[i]表示到元素i结尾时,最长的子序列的长度,初始化全部为1。 方法一:暴力动态规划(超时) 具...
算法
2021-07-17
1
1072
题解 | #求路径#
来自专栏
NC34 求路径 题目思路:这道题目其实很一道很经典的动态规划题目,题目意思很好理解,就是找从起点到终点的所有可行的路径。 约束的两个条件: 机器人每次只能往右或者往下走 机器人不能越界 我们看到这张图就明白一切: 方法一:经典使用dp数组 有了上面的两个条件,我们就可以解决这个题目了。 ...
算法
2021-07-16
36
1907
题解 | #大数乘法#
描述 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回。 (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符组成) 示例 输入:"11","99" 返回值:"1089" 说明:11*99...
算法
2021-07-14
19
2161
题解 | #数字字符串转化成IP地址#
来自专栏
题解一:暴力法 题解思路: 暴力去枚举4个位置所占的位数,按照题目要求对每个位置的值进行合法性判断(0<=x<=255) 不合法判断: 1.占的位数不为1,但是其第一位上的值为0; 2. 大于255的复杂度分析:时间复杂度:O(1) 每层循环都是常数级空间复杂度:O(...
算法
2021-07-12
14
2216
打家劫舍问题
其实就是一个打家劫舍的问题,数组中每一个元素值就是可以偷的金额,相邻的不能偷,求能够偷出的最大金额是多少。 设置一个状态转移数组dp,dp[i]表示数组中前i个元素所能偷的最大金额是多少 状态转移表达式: (1)对于当前的元素arr[i],如果偷,那么dp[i] = dp[i-2] + arr...
算法
2021-03-16
25
1281