![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
CVer儿
开源让世界更美好
展开
-
动态规划
1.题目描述三步问题。有个小孩正在上楼梯,楼梯有 n 阶台阶,小孩一次可以上 1 阶、2 阶或 3 阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模 1000000007。class Solution {public: vector<int> f; int mod = 1000000007; int waysToStep(int n) { f.resize(n+1); f[0] = 1; .原创 2020-12-06 18:44:43 · 129 阅读 · 0 评论 -
二叉树遍历
1.C++实现二叉树 前、中、后序遍历(递归与非递归)非递归实现过程最简洁版本https://blog.csdn.net/czy47/article/details/812549842.C++ 二叉树的层次遍历https://blog.csdn.net/qq_29762941/article/details/80908072...原创 2020-12-06 17:47:10 · 135 阅读 · 0 评论 -
矮油~ 二叉树的深度优先遍历与广度优先遍历 [ C++ 实现 ]
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。如右图所示的二叉树:A 是第一个访问的,然后顺序是 B、D,然后是 E。接着再是 C、F、G。那么,怎么样才能来保证这个访..转载 2020-12-06 14:42:11 · 439 阅读 · 0 评论 -
永远的斐波那契数列
递归+缓存求解:“https://blog.csdn.net/cool99781/article/details/108905148加个缓存数组可以把时间复杂度从0(n*n)降低到o(n);题外话:DEV-C++使用的编译器是GCC,它允许使用变量作为数组的长度定义数组。VC的编译器不是GCC,它不允许你这样做。方法1:使用动态内存分配,new和delete操作符int num;cin >> num;int* a = new int[num];…de...原创 2020-12-04 18:57:40 · 109 阅读 · 0 评论 -
二叉树---深度
很基本的问题,依旧从递归遍历或者层次广度优先遍历做起;递归法本题其实也要后序遍历(左右中),依然是因为要通过递归函数的返回值做计算树的高度。按照递归三部曲,来看看如何来写。确定递归函数的参数和返回值:参数就是传入树的根节点,返回就返回这棵树的深度,所以返回值为int类型。代码如下:int getDepth(TreeNode* node)确定终止条件:如果为空节点的话,就返回0,表示高度为0。代码如下:if (node == NULL) return 0;确定单层递归的原创 2020-12-01 02:20:09 · 382 阅读 · 0 评论 -
二叉树---遍历
一般用递归和堆栈来遍历前序遍历:打印 - 左 - 右 中序遍历:左 - 打印 - 右 后序遍历:左 - 右 - 打印1. 递归遍历递归函数实现,定义 inorder(root) 表示当前遍历到 root 节点的答案,那么按照定义,我们只要递归调用 inorder(root.left) 来遍历 \textit{root}root 节点的左子树,然后将 root 节点的值加入答案,再递归调用inorder(root.right) 来遍历root 节点的右子树即可,递归终止的条件为碰到空节点。原创 2020-12-01 02:16:27 · 565 阅读 · 0 评论 -
力扣刷题记录
1. 最长字串:2.最大子串和(动态规划):3 .容器盛水:#include<set>#include<vector>#include<iostream>#include<algorithm>using namespace std;class Solution {public: /** * max water * @param arr int整型vector the array * @return long长整型.原创 2020-12-01 01:48:53 · 239 阅读 · 0 评论 -
几种数据结构
原帖:https://mp.weixin.qq.com/s/6U8i7nBaltwSlHO5sQpZ7w快速介绍8种常用数据结构数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。几乎所有已开发的程序或软件系统都使用数据结构。此外,数据结构属于计算机科学和软件工程的基础。当涉及软件工程面试问题时,这是一个关键主题。因此,作为开发人员,我们必须对数据结构有充分的了解。在本文中,我将简要解释每个程.原创 2020-10-05 23:32:15 · 188 阅读 · 0 评论