Bootstrap
代码随想录第六十天 | Bellman_ford队列优化算法(即SPFA) bellman_ford之判断负权回路 bellman_ford之单源有限最短路
Bellman_ford 队列优化算法(SPFA): 文章链接 题目链接:94.城市间货物运输Ⅰ 思路 bellman_ford算法是对图中所有边进行n - 1次松弛,但是实际上是有一些多余的操
代码随想录算法训练营第三十八天 | 322.零钱兑换 279.完全平方数 139.单词拆分 多重背包以及背包总结
LeetCode 322.零钱兑换: 文章链接 题目链接:322.零钱兑换 思路: 首先分析题目,每种硬币的数量是无限的,因此为完全背包问题;又要求返回的是最少硬币个数,因此与组合数/排列数无关
代码随想录算法训练营第三十三天 | 62.不同路径 63.不同路径
LeetCode 62.不同路径: 文章链接 题目链接:62.不同路径 思路: 动态规划 使用二维数组保存递推结果 ① dp数组及下标含义 dp[i][j]:表明从(0, 0)到下标为(i, j
代码随想录算法训练营第五十九天 | dijstra(堆优化版) Bellman_ford算法
dijstra(堆优化版)精讲: 文章链接 题目链接:47.参加科学大会 思路 之前的dijstra算法是从节点出发的,使用的是邻接矩阵存储图,时间复杂度为O(n^2),但是对于稀疏图来说,使用
代码随想录算法训练营第三十二天 | 动态规划理论基础 509.斐波那契数 70.爬楼梯 746.使用最小花费爬楼梯
动态规划理论基础: 文章链接 什么是动态规划: 如果某一问题有很多重叠子问题,那么就适用于动态规划(Dynamic Programming简称DP)。 动态规划每个状态是由上一个状态推导得到的,
代码随想录算法训练营第二天 | 209.长度最小的子数组 59.螺旋矩阵Ⅱ
LeetCode 209. 长度最小的子数组: 文章链接 题目链接:209.长度最小的子数组 看到题目后自己的思考 题目所求为长度最小的子数组,且子数组中的元素在原数组中应该是相邻的。 基于相邻
代码随想录算法训练营第四十天 | 股票问题
LeetCode 121.买卖股票的最佳时机: 文章链接 题目链接:121.买卖股票的最佳时机 思路 方法1:暴力 看到题目最直接的想法是双层遍历求最大区间差 class Solution:
3 算法1-4 Function
题目描述 对于一个递归函数 w(a,b,c) 如果 a≤0 或 b≤0 或 c≤0 就返回值 1。如果 a>20 或 b>20 或 c>20 就返回 w(20,20,20)如果 
图的应用(Prim算法、Kruskal算法、Dijkstra算法、Floyd算法)
图的应用 1、最小生成树 最小生成树:一个连通图的生成树,且包含图的所有顶点和尽可能少的边。 对于带权连通无向图G=(V,E)生成树不同,每棵树的权(即数中所有边上的权值之和)也可能不同。设A为
代码随想录算法训练营第二十六天 | 贪心算法理论基础 455.分发饼干 376.摆动序列 53.最大子序和
贪心算法理论基础: ① 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 ② 一般能够手动模拟感觉到局部最优可以推出全局最优,没有找到反例,就可以用贪心算法。 ③ 比如,一堆东西中可以选择4个
最短路之floy算法
一、Floyd算法 1、介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题。 2、思想   Floyd算法的基
C++ 最短路径之Floyd算法 \ Floyd-warshall算法
Floyd算法 和 Floyd-warshall算法 实际上是一个东西,只不过是名字不同罢了。           Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间
最短路径——Floyd算法
1. 背景: Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计
代码随想录算法训练营第五十八天 | 拓扑排序 dijstra
拓扑排序精讲: 文章链接 题目链接:117.软件构建 拓扑排序背景 文件存在依赖关系,需要给出一条线性的依赖顺序来处理这些文件,而许多文件的依赖关系又可以画成一张有向图。 概括来说,就是给出一个
大数据算法_大数据挖掘十大经典算法
一、 C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率
;