
基础算法
前端基础算法整理中...
粘锅土豆
粘锅土豆
展开
-
【前端】自学基础算法 -- 25.动态规划-01背包问题
01背包问题 * 给定 n 个物品和一个容量为 W 的背包,每个物品都有自己的重 w 和价值 v。 * 问如何选择物品放入背包,使得背包内物品的总价值最大,同时不超过背包的容量。原创 2025-01-14 12:12:11 · 1037 阅读 · 0 评论 -
【前端】自学基础算法 -- 24.动态规划-变态青蛙蛙跳台阶
变态青蛙跳台阶一只青蛙,一次只能跳1级台阶、2级台阶、3级台阶、…原创 2025-01-14 12:09:00 · 586 阅读 · 0 评论 -
【前端】自学基础算法 -- 23.动态规划-青蛙跳台阶
一只青蛙,一次只能跳一级台阶,或者两级台阶问:这只青蛙跳上n级台阶,有多少种跳法如果这只青蛙,跳上了n级台阶,那么最后一次跳跃之前,它一定在n-1级台阶,或者n-2级台阶;原创 2025-01-14 12:05:48 · 345 阅读 · 0 评论 -
【前端】自学基础算法 -- 22.动态规划-斐波那契数列
动态规划(Dynamic Programming,简称 DP)是一种解决复杂问题的方法,它将问题分解为更小、更简单的子问题,并存储这些子问题的解,以避免重复计算。动态规划通常用于优化问题,如求最大值、最小值或计数问题。动态规划的基本思想是将大问题分解为小问题,并从小问题开始解决,逐步构建到原问题的解。斐波那契数列:从第三项开始,每一项都是前两项之和。原创 2025-01-14 11:56:56 · 265 阅读 · 0 评论 -
【前端】自学基础算法 -- 21.图的广度优先搜索
图的广度优先搜索,沿着图的宽度遍历图的节点,先访问离起始节点最近的节点,然后逐渐向外扩展。原创 2025-01-13 19:31:33 · 244 阅读 · 0 评论 -
【前端】自学基础算法 -- 20.图的深度优先搜索
图的深度优先搜索,沿着图的深度遍历图的节点,尽可能深地搜索图的分支。当节点 v 的所有相邻节点都已被探索过,深度优先搜索将回溯到发现节点 v 的节点,继续搜索。原创 2025-01-13 19:28:08 · 252 阅读 · 0 评论 -
【前端】自学基础算法 -- 19.树的广度优先搜索
树的广度优先搜索,先从根节点开始,逐层遍历所有节点,直到遍历完整棵树。原创 2025-01-13 18:58:47 · 222 阅读 · 0 评论 -
【前端】自学基础算法 -- 18.树的深度优先搜索
树的深度优先搜索,从根节点开始,沿着每个分支尽可能深地探索,直到到达叶子节点,然后回溯并探索其他分支。原创 2025-01-13 18:56:48 · 190 阅读 · 0 评论 -
【前端】自学基础算法 -- 17.不平横二叉树的左、右单旋
主要用于调整二叉搜索树的平衡,保持二叉搜索树的性质,使得树的高度相对平衡,从而提高搜索、插入和删除等操作的效率。原创 2025-01-13 16:28:45 · 265 阅读 · 0 评论 -
【前端】自学基础算法 -- 17.平横二叉树
平横二叉树原创 2025-01-13 14:56:58 · 262 阅读 · 0 评论 -
【无标题】【前端】自学基础算法 -- 16.二叉搜索树
二叉搜索树是一种二叉树,它满足以下性质:对于树中的任意一个节点,其左子树中的所有节点的值都小于该节点的值,其右子树中的所有节点的值都大于该节点的值。这种数据结构支持高效的搜索操作,例如,在一个二叉搜索树中查找一个特定的值,每次可以根据当前节点的值与目标值的比较结果,决定是在左子树还是右子树中继续搜索。原创 2025-01-13 14:32:46 · 517 阅读 · 0 评论 -
【前端】自学基础算法 -- 15.最小生成树-克鲁斯卡尔算法(加边法)
克鲁斯卡尔算法是一种用于查找最小生成树的算法。原创 2025-01-13 10:52:04 · 271 阅读 · 0 评论 -
【前端】自学基础算法 -- 14.最小生成树-普利姆算法(加减法)
普利姆算法(Prim’s Algorithm)是一种用于找出加权无向图的最小生成树的贪心算法。最小生成树是一个包含图中所有顶点的无环子图,使得其边的权重之和最小。普利姆算法从任意一个顶点开始,逐步增加新的边和顶点到最小生成树中,直到所有的顶点都被包含在内。原创 2025-01-10 17:34:14 · 252 阅读 · 0 评论 -
【前端】自学基础算法 -- 13.二叉树-diff算法
本文介绍了如何使用二叉树进行差异比较(diff算法),以确定在两个二叉树之间新增了什么、修改了什么、删除了什么。原创 2025-01-10 11:02:38 · 448 阅读 · 0 评论 -
【前端】自学基础算法 -- 12.二叉树-比较是否相同
本文将介绍如何比较两个二叉树是否相同。两个二叉树相同意味着它们具有相同的结构和相同的节点值。在比较过程中,左右子树互换位置根据需求确定【相同】或者【不相同】。原创 2025-01-09 19:17:26 · 167 阅读 · 0 评论 -
【前端】自学基础算法 -- 11.二叉树-广度优先搜索
广度优先搜索(BFS)是一种用于遍历或搜索树或图的算法。在二叉树中,广度优先搜索可以按照层序遍历的顺序进行。原创 2025-01-09 18:41:01 · 199 阅读 · 0 评论 -
【前端】自学基础算法 -- 10.二叉树-深度优先搜索
深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。在二叉树中,深度优先搜索可以按照前序遍历的顺序进行。原创 2025-01-09 18:34:04 · 157 阅读 · 0 评论 -
【前端】自学基础算法 -- 9.根据中序、后序还原二叉树
给定二叉树的中序遍历和后序遍历序列,可以还原出原始的二叉树。中序遍历是先遍历左子树,然后访问根节点,最后遍历右子树。后序遍历是先遍历左子树,然后遍历右子树,最后访问根节点。原创 2025-01-09 15:56:02 · 139 阅读 · 0 评论 -
【前端】自学基础算法 -- 8.根据前序、中序还原二叉树
给定二叉树的前序遍历和中序遍历序列,可以还原出原始的二叉树。前序遍历是先访问根节点,然后遍历左子树,最后遍历右子树。中序遍历是先遍历左子树,然后访问根节点,最后遍历右子树。原创 2025-01-09 15:52:51 · 165 阅读 · 0 评论 -
【前端】自学基础算法 -- 7.二叉树-前序、中序、后续遍历
二叉树是一种非线性数据结构,其中每个节点最多有两个子节点:左子节点和右子节点。遍历二叉树是指按照某种顺序访问树中的每个节点。原创 2025-01-09 15:49:47 · 220 阅读 · 0 评论 -
【前端】自学基础算法 -- 6.快速排序
快速排序是一种高效的排序算法,采用分而治之的策略将一个大列表分成两个小列表。基本步骤是选择一个基准值,然后将数组中的元素分成两部分:小于基准值的元素和大于基准值的元素。这两部分独立地进行排序。原创 2025-01-09 15:27:27 · 293 阅读 · 0 评论 -
【前端】自学基础算法 -- 5.比较排序
选择排序是一种简单直观的排序算法。它的工作原理是每次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。原创 2025-01-09 15:23:40 · 194 阅读 · 0 评论 -
【前端】自学基础算法 -- 4.冒泡排序
冒泡排序是一种简单的排序算法,通过比较数组中相邻的两个元素并交换它们的位置(如果顺序不对)来工作。该算法重复地遍历数组,直到不需要再交换为止。原创 2025-01-09 15:20:54 · 193 阅读 · 0 评论 -
【前端】自学基础算法 -- 3.普通排序
本文将介绍一种简单的排序算法:普通排序。该算法通过遍历数组,每次筛选出最小或最大值,并将其放在新数组的开头或结尾。虽然看起来简单,但实现过程中需要注意一些细节。原创 2025-01-09 15:12:58 · 105 阅读 · 0 评论 -
【前端】自学基础算法 -- 2.链表的逆置
本文将介绍如何逆转一个链表。链表是一种常见的数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。逆转链表意味着将链表中所有节点的指针方向反转,使得原来的头节点变为尾节点,原来的尾节点变为头节点。原创 2025-01-09 15:09:57 · 188 阅读 · 0 评论 -
【前端】自学基础算法 -- 1.回溯算法·组合
生成从 1 到 n 的所有 k 个数的组合。原创 2025-01-09 14:39:20 · 154 阅读 · 0 评论