蓝桥杯基础算法
文章平均质量分 81
qqcoming
Coding make me happy
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
有1~1000这1000个数,放在大小为1001的数组中,只有一个元素值重复,要求不用辅助空间,每个数访问一次,找出重复的元素
有1~1000这1000个数,放在大小为1001的数组中,只有一个元素值重复,要求不用辅助空间,每个数访问一次,,找出重复的元素。示例代码如下: 第一种方法 我们知道一个两个数相同的数异或为0,既然已经知道数组中存放的数中有一个数重复,则可以自己创建一个1~1000的数组,然后再与给出的随机数组异或直接得出那个重复的数 public class FindRepetition { publi...原创 2020-02-04 18:09:42 · 1343 阅读 · 2 评论 -
Java利用大整数除法实现保留小数带你后面100位(蓝桥杯黄金分割数)
标题: 黄金连分数 黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。 对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!! 言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。 比较简单的一种是用连分数: 1 黄金数 = ------------原创 2020-06-18 15:45:07 · 814 阅读 · 1 评论 -
蓝桥杯第十一届省模拟赛题目java组
1.一个包含有2019个结点的无向连通图,最少包含多少条边? 2.将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。 请问,总共能排列如多少个不同的单词。 3.在计算机存储中,12.5MB是多少字节? 4.由1对括号,可以组成一种合法括号序列:()。 由2对括号,可以组成两种合法括号序列:()()...原创 2020-04-25 20:26:31 · 458 阅读 · 0 评论 -
递归和递推解决机器人走方格问题
走方格的问题,一个mn的方格,从左上角走到左下角,问有多少种走法* 我们可以从mn为11,12,21,22然后慢慢开始发现了mn与m*(n-1)和(m-1)*n有关,并且是它们之和,那么根据这一规律可以直接列出递归的解法: //递归解决,时间复杂度2的n次方 static int check(int x, int y) { if(x==1 || y==1) return 1; retur...原创 2020-04-23 23:01:58 · 621 阅读 · 0 评论 -
Dp解决最长公共子序列问题(LCS问题)
给定两个字符串,求最长公共子序列 例如:String s1=“ABCD” , String s2=“ABEFGD”; 则应返回字符串"ABD"; 当然一开始最容易想到的是暴力循环加递归,但是时间复杂度太高了,我们可以采用dp打表递推的方法来解决; package LanqiaoBeautiful._8Dp; import java.util.ArrayList; /** * 求最大公共子序列问...原创 2020-03-30 23:01:33 · 408 阅读 · 0 评论 -
问题 1004: [递归]母牛的故事
问题描述: 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。 请编程实现在第n年的时候,共有多少头母牛? 这里我们列举出前九年的母牛数量: | 第一年 | 第二年 | 第三年 | 第四年 | 第五年 | 第六年 | 第七年| 第八年| | —1— | —2—- | —3—- | —4—- | —6— | —9— | —13— |—19— | 我们可以很轻易的...原创 2020-03-26 23:11:44 · 202 阅读 · 0 评论 -
2020年蓝桥杯模拟赛解题报告(Java版本)
加粗样式转载 2020-03-25 23:25:14 · 422 阅读 · 0 评论 -
01背包问题三种求解方式
01背包问题三种求解方式 ** 有n个重量和价值分别为wi,vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。 1≤n≤100 1≤wi,vi≤100 1≤W≤10000 输入: n=4 (w,v)={(2,3),(1,2),(3,4),(2,2)} W=5 输出: 7(选择第0,1,3号物品) 因为对每个物品只有选和不选两种情况,所以这个问题称为01背包。* ...原创 2020-03-23 23:33:20 · 1352 阅读 · 0 评论 -
DFS解决程序挑战竞赛中的部分和问题
问题描述如下: 给定整数序列a1,a2,…,an,判断是否可以从中选出若干数,使它们的和恰好为k. 1≤n≤20 -108≤ai≤108 -108≤k≤108 样例: 输入 n=4 a={1,2,4,7} k=13 输出: Yes (13 = 2 + 4 + 7) package LanqiaoBeautiful._7Recurtion; import java.util.ArrayList; i...原创 2020-03-12 22:37:50 · 181 阅读 · 0 评论 -
巧用二进制解决挑战程序竞赛中的部分和问题
输入一个数,用二进制表示,输出二进制中1的个数 例如: 输入9,即二进制1001,则输出2,具体代码如下 import java.util.Scanner; /* * 输入一个数,用二进制表示,输出二进制中1的个数 * 例如: 输入9,即二进制1001,则输出2 */ public class Binary1 { public static void main(String[] arg...原创 2020-02-04 17:38:11 · 364 阅读 · 0 评论 -
快排没有你想象中的那么难!!!
快速排序 快速排序是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 package LanqiaoBeautiful.Second.Sort; import java.util.Random; /* * 快速排序采用分治的思想,将一个数组分...原创 2020-02-14 16:46:51 · 297 阅读 · 0 评论 -
希尔排序(java实现,简单易懂)
希尔排序 希尔排序*是插入排序的一种比较高级的改进算法,整体结构的核心算法还是插入排序,希尔排序是对一个整体需要排序的数组进行“间隔”的排序,而这个“间隔”的选取也在一定程度上决定了证程序的时间复杂度,即程序的性能。 下面我们就采用间隔为arr.length/2为例进行分析,例如一个随机长度是为15的数组,int[] arr = {9,6,11,3,5,12,8,7,10,15,14,4,1,13...原创 2020-02-12 17:10:42 · 523 阅读 · 0 评论 -
求1+2+3+...+n的值
求1+2+3+4+…+n的和,最简单的方式就是暴力循环求和,实例代码如下: import java.util.Scanner; public class Sum { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long n = scanner.nextLong(); ...原创 2020-02-09 17:21:41 · 2629 阅读 · 0 评论 -
三种方法求解Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1,当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
最直接暴力的方式就是递归求解,但是消耗的时间太大,计算机的工作量大,但是代码简洁。 实例代码如下: public class Fib { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); System.out.pri...原创 2020-02-09 17:09:50 · 4771 阅读 · 5 评论
分享