算法
文章平均质量分 81
比奇堡咻飞兜
我很丰富,无法简介
展开
-
最小生成树Prim算法实现【C++】
输入格式:{\color{Violet}输入格式:}输入格式:∙\bullet∙ 第一行三个数n、m、start,分别代表城市个数、道路条数、出发点(起始点)。∙\bullet∙ 接下来m行每行三个数a、b、c,分别表示城市a、城市b、城市a和b之间的距离。输出格式:{\color{Violet}输出格式:}输出格式:∙\bullet∙ 从起始点开始,每行输出一条选中的路径,格式为:a--b:dis,表示从a到b,距离为dis。∙\bullet∙ 最后一行输出总的生成代价sum_dis。定义原创 2021-10-01 21:00:00 · 1162 阅读 · 0 评论 -
最短路径Dijkstra算法实现【C++】
输入格式:{\color{Violet}输入格式:}输入格式:∙\bullet∙ 第一行三个数n、m、start,分别代表城市个数、道路条数、出发点(起始点)。∙\bullet∙ 接下来m行每行三个数a、b、c,分别表示城市a、城市b、城市a和b之间的距离。输出格式:{\color{Violet}输出格式:}输出格式:∙\bullet∙ 输出一行n各数据,分别表示起始点start到该点的最短路径。定义存储数组:{\color{Violet}定义存储数组:}定义存储数组:∙\bullet∙ i原创 2021-10-01 15:56:07 · 2977 阅读 · 2 评论 -
【动态规划】路径问题
目录1. 不同路径1.1 题目1.2 分析1.3 代码2. 不同路径II2.1 题目2.2 分析2.3代码3. 最小路径和3.1 题目3.2 分析3.3 代码4. 三角形最短路径和4.1 题目4.2 分析4.3 代码5. 下降路径最小和5.1 题目5.2 分析5.3 代码1. 不同路径1.1 题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有原创 2021-08-04 22:38:48 · 475 阅读 · 0 评论 -
【动态规划】股票交易
文章目录1.买卖股票的最佳时机1.1 题目1.2 分析1.3 代码2.买卖股票的最佳时机 II2.1 题目2.2 分析2.3 代码3.最佳买卖股票时机含冷冻期3.1 题目3.2 分析3.3 代码4.买卖股票的最佳时机含手续费4.1 题目4.2 分析4.3 代码1.买卖股票的最佳时机1.1 题目给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能原创 2021-07-27 19:46:34 · 265 阅读 · 0 评论 -
【动态规划】打家劫舍(I、II)
目录1.打家劫舍I(中等)1.1题目1.2分析1.3代码(C++)2.打家劫舍II(中等)2.1题目2.2分析2.3代码(C++)1.打家劫舍I(中等)1.1题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4原创 2021-07-25 21:34:24 · 131 阅读 · 0 评论 -
【动态规划】跳跃游戏(I、II)
1. 跳跃游戏I(中等)1.1 题目给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是原创 2021-07-25 14:07:01 · 1141 阅读 · 1 评论 -
替换法(代入法)求解递归式
一.原理替换法(或者叫带入法)就是我们直接对T(n)进行猜测,然后带入原递归式中进行验证。二.举例现在有递归式如下:我们首先对其进行猜测:T(n)=θ(nlogn) T(n) = \theta(nlogn) T(n)=θ(nlogn)原创 2021-06-09 15:03:43 · 3708 阅读 · 2 评论 -
算法分析(渐进分析)
算法分析分为算法时间复杂度分析与算法空间复杂度分析。一般而言,时间对于我们来说更重要,算法的优化主要也是对时间的优化,而对于空间只要我们的计算机性能较好,对于计算结果影响就不会很大。,下面主要也是对算法一些关于时间复杂度的描述!一.T(n)函数当算法时间仅依赖于问题输入规模n,我们可以将其表示为T(n)。T(n)直接由每一步的操作次数之和相加构成。下面我们以插入排序的伪代码为例来计算它的T(n)但是因为当规模变大时,其主要决定作用的就是最高项,所以我们只需要取它的最高项即可,那..原创 2021-06-06 17:01:11 · 7358 阅读 · 0 评论