牛客编程
qq_36950604
这个作者很懒,什么都没留下…
展开
-
非递归遍历树(前中后)
1. 中序遍历思路栈存储节点 head指向当前遍历节点 循环中入栈(先、后都是先入栈再循环) head非空时,一直往左走; head为空时, 弹出栈顶,访问元素 往右走2. 先序遍历 and 后序遍历思路先序和后续的区别 共同点 1个栈 2个栈 先pop节点 访问节点 再append非空子节点 先right再left 先left再right 栈中的元素pop就访问 栈中的元素pop后进入第二...原创 2021-03-30 20:18:30 · 70 阅读 · 0 评论 -
并查集
今天接了字节数据开发实习的一面,面试官问了我一个类似于计算无向图的连通分量数量的代码题,面试官引导我往图方面想,当时没撕出来,还是对图算法不熟悉!想的是通过DFS遍历,需要遍历几次DFS能够遍历所有的节点,那么就有几个连通分量。后面在网上又搜集到了一种新的解题思路,所以在这里记录学习一下。题目:一下2维列表中[0, 1]表示 0关注1 ,【3, 2】表示3关注2,【3, 4】表示3关注4,那么【3,2,4】应该属于一个社交圈,现有以下2维列表,求出共有多少个社交圈(连通图)[[0, 1]原创 2021-03-29 23:07:49 · 78 阅读 · 0 评论 -
牛客简单题——最大子序列和
这是今天面试被问到的问题。说实话,有点惨。最近一直想要弄懂动态规划,那就用动态规划来学习一下牛人的思路吧问题: 如一个一维数组arr[-2 ,11, -4 , 13 , -5 , -2],求最大子序列和,并输出最大子序列的开始和结尾思路:假如是[-2] 那么最大子序列和为其本身假如是[-2, -11] 那么 最大子序列和为其max(-2, -2-11)= -2假如是[-2, 11] 那么 最大子序列和为max(-2, -2+11) = 9动态规划存储数组大小:d[ len(a..原创 2020-11-09 20:32:47 · 162 阅读 · 0 评论 -
牛客简单篇-递归
先找问题规律,父问题和子问题的递推关系例如如下关系:方法一:按照公式进行递归,可读性高def fun(number): if(number == 0): return 0 if(number == 1): return 1 if(number == 2): return 2 return fun(number-1)+fun(number-2) 方法二:迭代def rectCover(n原创 2020-11-09 19:52:50 · 125 阅读 · 0 评论