蓝桥杯算法学习
文章平均质量分 89
记录算法学习过程
JohnnyLin00
持续输出学习 持续发光 共同进步!
展开
-
蓝桥杯图专题
【问题描述】很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。聪明的J发现,如果不在某个城市停下来修整,在连续行进过程原创 2020-10-13 18:08:01 · 320 阅读 · 0 评论 -
别有洞天的尺取法——最短含关键词子串问题
/*Alibaba笔试题,给定一段产品的英文描述,包含M个英文单词,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法。String extractSummary(String description,String[] key words)目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。 */...原创 2020-04-28 22:36:11 · 316 阅读 · 2 评论 -
动态规划常见模型之背包专题
背包问题专题背包问题常见以下几种01背包模型特点:每种物品只有一个,且要么选要么不选,有01两种状态因而以01得名。有限制范围,常见体积或者重量限制,一般用二维数组dp[i][j]表示状态,其中第一个维度表示可选范围,第二个维度表示容量等限制范围。完全背包模型特点:与01背包相似,唯一不同的是,完全背包的物品是由无限个。01背包问题题目描述给定N个物品,每个物品有一个重量W和一个价...原创 2020-03-26 17:12:29 · 656 阅读 · 0 评论 -
动态规划常见模型之序列专题
常见动态规划模型动态规划理论见:算法Day6——动态规划常见模型有以下三种:最大子段问题最长上升子序列dp[i]表示以i号元素为结尾的最长上升子序列长度最大公共子序列dp[i][j]表示s1前i个元素和s2前j元素的公共子列长度最大子段和问题最大子段和就是所有子段中和最大的例如:-2 11 -4 13 - 5 -2最大子段和就是:11+(-4)+13=20packag...原创 2020-03-26 16:52:53 · 518 阅读 · 0 评论 -
图解动态规划入门
动态规划入门(1)一维递推(2)二维递推一维递推爬楼梯方案数/*有一楼梯共n级,刚开始你在第0级,若每次只能跨上一级或二级, * 要走上第n级,一共有多少种走法? * 递推基 f(1)=1; f(2)=23级时最后一步为1/2级 那么前面就是2/1级 所以方案数为级数为1和2之和 级数 方案数 1 1 2 2 3 3 4 5 5 8 6 13 7 2...原创 2020-03-24 23:47:20 · 367 阅读 · 2 评论 -
广度优先搜索(BFS)类专题
理论笔记见博客:算法Day5——广度优先搜索笔记求迷宫最短路径/*给一个n行m列的迷宫,'S'表示迷宫的起点,'T'表示迷宫的终点,'*'表示不能通过的点,'.'表示可以通过的点。现在要求从'S'出发走到'T',每次只能上下左右走动,并且只能进入能通过的点,每个点只能通过一次,问是否能够到达终点可以的话求出最短路,如果不可以输出-1。 *//*测试数据:5 6....S*...原创 2020-03-20 17:17:55 · 324 阅读 · 0 评论 -
快速幂运算和矩阵乘法
一、数字快速幂求x的n次方package 分治法;public class 快速幂_初始版 { /* * 以最快速度求x的n次方 * 时间复杂度:O(log n) */ public static long quick_Pow(long x,int n) { if(n==1) return x; long temp=x;//x的一次方 int i=1; ...原创 2020-03-16 08:41:50 · 681 阅读 · 0 评论 -
回溯法之生命之树
回溯法Q2——生命之树生命之树这道题是参考了南墙的代码的我之前做这种图的都是将顶点邻接关系存储在邻接矩阵中的,之前在蓝桥杯大臣的旅费这道题中有用过自定义图结构,这道题也类似。我对dfs并不陌生不过,倒是没有想到用回溯来统计每个结点的最大和谐值,通常是回溯后取消标记。/*生命之树在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的...原创 2020-03-09 17:22:44 · 186 阅读 · 0 评论 -
深搜之抽象类DFS
最近刷了一些蓝桥杯的真题,这次就总结一下没有图的抽象类的深搜下面是从刷的蓝桥杯真题和计蒜客中总结的一些抽象dfs题型抽象深搜常见有以下两种类型: **1.凑算式类 2.排列组合类**原创 2020-03-09 16:04:32 · 637 阅读 · 1 评论 -
深搜之迷宫类
常见的迷宫类搜索可以分为以下5种类型 1. 找一组可行解(判断是否可行) 2. 所有可行解 3. 最优解(通常见最少步数) 4. 计算连通块数目 5. 求最大连通块原创 2020-03-08 19:25:12 · 1788 阅读 · 2 评论 -
分治法之图解快速排序
分治法Q3——快速排序package 分治;public class 快速排序 { /**快速排序法 分治实现 * 重点在分区根据分区方法不同分为:单向扫描法 双向扫描法 * template:1.terminator 2.process(prepare data,split your big problem) * 3.drill down ,merge 4.rever...原创 2020-03-01 22:50:51 · 694 阅读 · 0 评论 -
分治法之图解归并排序
分治法Q2——归并排序原创 2020-03-01 21:46:13 · 241 阅读 · 0 评论 -
递归法之二分查找
递归法Q3——二分查找package 递归;/*template:1.terminator 2.drill down 3.reverse states*/public class 二分查找 { int binarySearch(int []nums,int begin,int end,int target) { if(begin<=end) { int mid=begin...原创 2020-03-01 19:26:29 · 132 阅读 · 0 评论 -
分治法之图解最大子序列和
分治法Q1——最大子序列和/*问题描述(最大区段问题)给定一个长度为n的整数序列,求它的最大连续子序列和-2,1,-3,4,-1,2,1,-5,4 最大连续子序列和为4+(-1)+2+1=6注意题目说最大没有说最长*/package 分治法;public class 最大连续子序列 { /**解法一:暴力枚举法 * 时间复杂度 O(n^3) * 空间复杂度 O(1)...原创 2020-03-01 15:19:50 · 2819 阅读 · 0 评论 -
回溯法之N皇后的三种解法
回溯法Q1——N皇后/*n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。给定一个整数 n,返回 n 皇后不同的解决方案的数量。*/解法一:暴力法package 回溯;public class N皇后_整型数组标记 { int ways; /* * cols数组...原创 2020-03-01 13:46:18 · 1303 阅读 · 0 评论 -
递归算法之汉诺塔
递归算法Q2——汉诺塔/从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步骤和移动的次数/package 递归;public class 汉诺塔 { /**hanoi(n,p1,p2,p3) 表示n个碟子从p1柱子借助p2移动到p3 * @param ...原创 2020-02-26 23:10:28 · 386 阅读 · 0 评论 -
递归算法斐波那契数列
递归算法Q1——斐波那契数列/*有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子。假如兔子都不死,求第n个月兔子对数关于斐波那契数列的兔子繁殖问题其实如下:实际月份 1 2 3 4 5 6 7 8幼仔对数 1 0 1 1 2 3 5 8成兔对数 0 ...原创 2020-02-26 23:01:34 · 745 阅读 · 0 评论 -
贪心算法之01背包问题
贪心算法Q3——01背包问题/*问题描述:有n件物品,每个物品都有一个大小和价值,给你一个固定容量的背包,要求装的东西价值总和最大 实例: 现在有重量分别为35 30 60 50 40 10 25,价值分别为10 40 30 50 35 40 30的物品, 背包最大承重为150,求该背包所能放置的物品最大价值是多少? * */package 贪心;import java....原创 2020-02-26 22:16:52 · 4421 阅读 · 0 评论 -
贪心算法之零钱兑换
贪心算法Q2——零钱兑换/*问题描述假设有25分、10分、5分、1分的硬币,先要发给客户41分的零钱,如何办到硬币个数最少?*/package 贪心;import java.util.Arrays;//用贪心策略求得的不一定是全局最优解 //此题若换成 25 20 5 1四种面值 按照该算法结果应为 面值25 5 5 5 1一共需要5张//显然不对 正确结果应该为20 2...原创 2020-02-26 22:15:06 · 1705 阅读 · 0 评论 -
贪心算法解最优装载问题
贪心算法Q1—— 最优装载问题package 贪心;import java.util.Arrays;/*问题描述在北美洲东南部,有一片神秘的海域,那里碧海 蓝天、阳光明媚,这正是传说中海盗最活跃的加勒比海。17 世纪时,这里更是欧洲大陆 的商旅舰队到达美洲的必经之地,所以当时的海盗活 动非常猖獗。有一天,海盗们截获了一艘装满各种各样古董的 货船,每一件古董都价值连城,一旦打碎就失去了它 的...原创 2020-02-26 22:11:52 · 743 阅读 · 0 评论