![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯之路
蓝桥杯经典算法整理
JVAV高级程序员
这个作者很懒,什么都没留下…
展开
-
java排序算法整合
小白学到的几种排序算法,记录一下方便复习1.选择排序 public static void XuanZhe() { int min,i; for(i=0;i<a.length-1;i++) { min=i; //把选择的每一个都看作最小,然后跟后面的每一个比较, for(int j=i+1;j<a.length;j++) if(a[min]>a[j]) min=j;原创 2020-11-17 20:06:38 · 66 阅读 · 2 评论 -
java算法kruskal——求最小生成树
最小生成树的经典算法有prim和kruskal,本人比较懒,选了学习实现比较方便的kruskal算法。算法演示:画图太费劲,文字演示一遍:1到2 边长1 3到6 边长4 2到4 边长5 3到5 边长7 1到3 边长12总权值:1+4+5+7+12 = 29————————————————————算法实现思路:第一步,对收集的边长数组进行升序处理第二步,循环每一组边长,用并查集检查两个点是否是同一个集合的(是否拥有同一个领袖),不是的话就说明可以加入最小生成树。———原创 2020-11-12 22:36:47 · 2397 阅读 · 0 评论 -
java算法--迷宫问题dfs+回溯打印出每条路的完整路径
java算法–迷宫问题dfs+回溯打印出每条路的完整路径迷宫问题之前是学习求解路径的数量或者最短路径的步数,这些都是找到目标点即可return。想要到达终点时对这条路径打印出来,则要用到回溯算法本小白用的方法是建立一个sum二维数组,第一列放置每个点的x坐标,第二列放置每个点的y坐标。 static int sum[][] =new int [50000][2]; // 回溯要用到的函数,记录路径每一次深度遍历判断后,则对sum数组进行标记,k是记录步数的,每次标记后就k++,方便下个标记原创 2021-02-26 21:14:03 · 742 阅读 · 0 评论 -
java算法BFS—求迷宫出口最短路径
java算法BFS—求迷宫出口最短路径————————————————————队列的建立static Queue r = new LinkedList(); //创建队列队列的基本方法r.offer(); 入队尾r.poll(); 出队首r.peek(); 队首的内容————————————————————代码内容:###全局变量设置package Two;import java.util.LinkedList;import java.util.Queue;impo原创 2020-11-09 18:40:51 · 492 阅读 · 0 评论 -
java算法递归——求行列式的值
递归算法学习1import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.Scanner;public class DiGui { public static int F(int [][]A,int len原创 2020-11-02 23:23:23 · 241 阅读 · 0 评论 -
java算法——二分法
二分查找函数:public static void midsearch(int k) { int l=0,h=m-1; while(l<h) { int mid = (l+h)/2; if(a[mid]==k) { flag=true; System.out.println(mid); return; } else if(a[mid]>k) { h = mid-1;} else l=mid+1; } if(flag==fals原创 2020-11-10 22:18:10 · 322 阅读 · 0 评论 -
蓝桥杯真题——剪邮票
先附上题目内容如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。这个题目有点像迷宫问题,一开始想的是用dfs算法去遍历出所有的5段长的路径,可是不知道怎么去重。后来还是借助了csdn上的大佬的思路来解题这个题的原创 2020-12-24 20:09:01 · 393 阅读 · 1 评论 -
java算法DFS—求迷宫出口最短路径
java算法DFS—求迷宫出口最短路径先设置全局的变量import java.util.Scanner;public class DFS { static int p,q,min=9999; //出口坐标(p,q),最小部署min static int a[][] =new int [100][100];//1表示空地,2表示障碍 static int v[][] =new int [100][100];//0表示未访问,1表示一访问 static int dx[]= {0原创 2020-11-02 23:10:40 · 888 阅读 · 1 评论 -
java算法——快速幂
对幂的运算一般就是a个b次数相乘,例如2^4 = 2 *2 *2 * 2,对于小数我们可以这样累乘,对于次数比较大的,有更简便的方法。例如:5 ^ 11 = 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 511的二进制数是1011 也就是 2的零次幂 1,2的1次幂 2,2的3次幂 8刚好5 ^ 11 = 5 ^ 1 * 5 ^ 2 * 5 ^ 8本来需要乘11次,现在只需要乘4次这就是快速幂的推演过程源代码:public class Qmi { pub原创 2020-11-17 20:37:25 · 1054 阅读 · 2 评论 -
位运算——小白的入门学习笔记
一.符号认知:&——按位与|——按位或^——按位异或二.基本方法:x&(x-1) 消去最后一位1x&(x-1)==0 判断是否为2的幂次数(2的幂次数只有一个1,去掉就变成0)while(x!=0) {x = x&(x-1);b++;} 判断有多少个1例题代码1:import java.util.Scanner;//常用方法public class WeiYunSuan { public static void F0(int x)原创 2020-11-10 21:56:32 · 177 阅读 · 0 评论 -
java算法——质数
质数就是一个数只可以被它自己和1整除(1不是质数)一.判断一个数是不是质数只需要让这个数 循环 除以2到根号n的数 如果出现整除的现象,则不是质数,反之则为质数源代码: public static int F(int x) { //判断是否为质数 2,3,5,7,11,13,17,19...... if(x==1) return 0; for(int i=2;i<=x/i;i++) { System.out.println(x+ " "+ i); if(x%i==0原创 2020-11-17 20:26:09 · 432 阅读 · 0 评论 -
java算法——01背包问题
背包问题我是看b站的视频学的一开始我看打表法是看的一脸懵,直到看一个大佬用树的形式去延申开来才明白动态规划的大致意思附一个自己画的动态规划树含义大致就是先判断当前编号的重量是否超过能承受的最大重量,如果不能,则退到上一个编号去考虑。如果能承受,则又有两种方法,一种是退到上一个编号去分配,另一种就是把当前编号的物品拿走,这样的话也会退到上一个编号,不过此时能承受的最大重量则需要减去刚刚放进去的物品的重量,而且当前加上已经放进去物品的价值,以此规律去拓展到第一个物品或则能承受的重量为0。关键代码: f原创 2021-02-28 20:43:37 · 139 阅读 · 0 评论 -
java算法———背包问题2
之前做的背包问题都是选最合适的一条路,今天做到的一道是满足条件就记录的。P1164关键代码如下:在相等的时候做个+1的行为是可以成立,所以算一种方法,所以+1在大于的时候不再是去洛两条路之间是最大,而是两条路都加起来,因为只需要满足条件即可 for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(j==a[i])f[i][j]=f[i-1][j]+1; if(j&原创 2021-03-01 21:25:04 · 111 阅读 · 0 评论 -
java算法——完全背包
之前学习的01背包代码的递归数组用的是二维的,今天学到可以优化成一维数组,代码如下:for(int i=1;i<=m;i++) for(int j=t;j>=a[i];j--) 改变的是j的循环判断,要大于当前选择的编号的重量 f[j] = Math.max(f[j], f[j-a[i]]+b[i]); System.out.println(f[t]);01背包是指每种物品只能选择一个,而完全背包指的是每种物品可以选择无限个,这样的话最优解可能是只包含一种物品,代码如下:原创 2021-03-04 21:12:30 · 250 阅读 · 1 评论