数据结构与算法
文章平均质量分 70
数据结构与算法
LYFlied
这个作者很懒,什么都没留下…
展开
-
JS打印二叉树所有路径(从根节点到叶子结点)
文章目录题目描述实现题目描述打印二叉树所有路径(从根节点到叶子结点)// Input:// 1// / \//2 3// / \// 5 6// OutPut:// 1->2// 1->3->5// 1->3->6实现使用递归方法来解决此问题。用一个栈stack 来存储路径,当遍历到叶子结点时,将stac原创 2021-04-28 20:59:19 · 1067 阅读 · 6 评论 -
JS实现二叉树的重建
文章目录1.根据前序+中序2.根据后序+中序function TreeNode(x) { this.val = x; this.left = null; this.right = null;}前序or后序用来确认根节点前序中,根节点在第一个,后序中根节点在最后一个利用根节点将中序遍历数组分割为左子树、右子树 相关数据。对于中序遍历,根节点左边的节点即左子树,根节点右边的节点即右子树。1.根据前序+中序function creatTree(pre, vin){原创 2021-04-19 19:35:41 · 3255 阅读 · 16 评论 -
数据结构与算法-二叉树的遍历递归&&非递归
文章目录一、递归1.前序2.中序3.后序二、非递归1.前序2.中序3.后序一、递归1.前序根左右// 所有遍历函数的入参都是树的根结点对象function preorder(root) { // 递归边界,root 为空 if(!root) { return } // 输出当前遍历的结点值 console.log('当前遍历的结点值是:', root.val) // 递归遍历左子树 preorder(roo原创 2021-04-19 15:21:31 · 427 阅读 · 4 评论 -
算法-分析爬楼梯问题从递归->记忆化搜索->动态规划
文章目录爬楼梯问题1.递归思想分析问题代码实现存在的问题2.记忆化搜索3.记忆化搜索转化为动态规划爬楼梯问题题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?例子:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶1.递归思想分析问题那么站在第原创 2021-04-18 16:47:34 · 1069 阅读 · 13 评论 -
基础算法-递归与回溯思想&&解题思路&&解题模板(附经典例题)
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。> 回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 ——LeetCode解题模板总结1.什么时候用2.为什么这样用3.怎么用例题-全排列问题例题-子集问题原创 2021-04-18 15:54:40 · 374 阅读 · 0 评论 -
十大排序算法JS实现以及复杂度分析
一、冒泡排序二、选择排序三、插入排序四、希尔排序五、归并排序六、快速排序七、堆排序八、计数排序九、桶排序十、基数排序原创 2021-04-15 19:49:02 · 1697 阅读 · 7 评论 -
十大排序算法-分治思想-归并排序&&快速排序(js实现)
分治思想解决问题:- 分解子问题- 求解每个子问题- 合并子问题的解,得出大问题的解原创 2021-04-13 19:49:15 · 986 阅读 · 9 评论 -
十大排序算法-冒泡排序&&选择排序&&插入排序(js基本实现&&改进)
1.基本思路分析冒泡排序的过程,就是从第一个元素开始,**重复比较相邻的两个项**,若第一项比第二项更大,则**交换**两者的位置;反之不动。2.复杂度分析- **最好**时间复杂度:O(n)- **最坏**时间复杂度:O(n^2)- **平均**时间复杂度:O(n^2)3.实现4.改进-不做无差别比较5.改进-最好情况O(n)原创 2021-04-13 11:05:41 · 263 阅读 · 4 评论