蓝桥杯
文章平均质量分 60
往后尔尔
勿扰,谢谢
展开
-
搜索(未完结版)
图的存储方式。原创 2024-04-13 00:13:16 · 313 阅读 · 0 评论 -
基础算法汇总
数据范围反推时间复杂度。原创 2024-04-12 00:36:44 · 1030 阅读 · 0 评论 -
基础算法知识中篇(前缀和,差分,离散化,贪心)
scan.hashNext原创 2024-04-11 12:43:53 · 824 阅读 · 1 评论 -
基础算法基本知识前篇(枚举,模拟,递归,进制转换)及蓝桥杯练习
数据范围反推时间复杂度。原创 2024-04-09 22:24:35 · 1208 阅读 · 0 评论 -
集合框架(数组,Arrays.sort,list,map,set,stack,queue)蓝桥杯习题
风铃响原创 2024-04-08 11:59:37 · 2536 阅读 · 0 评论 -
蓝桥杯gcd汇总
现给出支持人数 A,反对人数 B,以及一个上限 L,请你将 A 比 B 化简为 ′A′ 比 ′B′,要求在 ′A′和 ‘B′均不大于 L 且 ′A′和 ′B′互质(两个整数的最大公约数是 1)的前提下,A′/B′≥A/B且A′/B′−A/B 的值尽可能小。c×lcm(a,b)−d×gcd(a,b)=x其中 c,d,x 是小明给出的数gcd(a,b) 为 a,b 的最大公因lcm(a,b) 为 a,b 的最小公倍数。其中,1≤A≤106,1≤B≤106,1≤L≤100,A/B≤L。原创 2024-04-07 16:50:27 · 989 阅读 · 0 评论 -
贪心算法详解
风铃响原创 2024-03-18 13:12:19 · 458 阅读 · 0 评论 -
离散化算法习题答案
风铃响原创 2024-03-18 12:46:47 · 337 阅读 · 0 评论 -
离散化算法
人总是为少年不可得之外困其一生原创 2024-03-18 07:08:01 · 441 阅读 · 0 评论 -
差分法详细
因此,使用差分可以将单次区间操作的时间复杂度优化到O(1),m次查询的总时间复杂度优化到O(m)快速将数组A的区间[l,r]加d(即:把Al,A(l+1)...+Ar这几个元素各加上d)小明将进行Q次操作,每次操作可选择一段区间,并使区间内彩灯的亮度+x(x可能是负数)而差分则可以将在原序列上的“区间操作”转化为差分序列上的“单点操作”第一行包含两个正整数N,Q,分别表示彩灯的数量和操作的次数。输出共1行,包含N个整数,表示每个彩灯的亮度。l r x,表将区间l~r的彩灯的亮度+x。原创 2024-03-18 00:01:18 · 478 阅读 · 0 评论 -
java的前缀和算法
每个查询包含三个整数l,r,k表示询问l~r之间所有元素的k次方和。输出m行,每行一个整数,表示查询的答案对10^9+7取模的结果。第二行输入n个整数a[1],a[2],...a[n]接下来m行,每行输入三个整数l,r,k表示一个查询。请对每个查询输出一个答案,答案对10^9+7取模。在O(1)的时间求出数组任意区间的区间和。第一含输入两个整数n,m其含义如上所述。给定一个长度为n的数组a以及m个查询。原创 2024-03-17 07:00:12 · 757 阅读 · 0 评论 -
java递归与进制转换
小明要用二进制来表示1到10000的所有整数,要求不同的整数用不同的二进制数表示,请问,为了表示1到10000的所有整数,至少需要多少个二进制位?斐波那契数列的定义为F(n)=F(n-1)+F(n-2),同时F1=1,F2=1,请你输出数列的第n个数的对1e9+7取模的值.基数是16,有十六种数字符号,除了在十进制中的0至9外,还另外用6个英文字母A,B,C,D,E,F来表示十进制数的10至15。基数为10,数值部分用0、1、2、3、4、5、6、7、8、9表示。原创 2024-03-15 15:41:35 · 932 阅读 · 0 评论 -
java-模拟的例题实战
用户输入的串中只有小写字母,空格和数字,不含其他的字母或符号。每个单词间有1个或多个空格分隔。假设用户输入的串长度不符合200个字符。在实际的开发工作中,对字符串的处理是最常见的编程惹怒我。本题目即是要求程序对用户输入的串进行处理。2 把数字与字母之间用下划线字符(_)分开,使得更清晰。3 把单词中间有多个空格的调整为一个空格。1 把每个单词的首字母变成大写。原创 2024-03-14 20:27:51 · 381 阅读 · 0 评论 -
java枚举与模拟方法
枚举算法(穷举算法),这种算法就是在解决实际问题的时候去使用所有的方式去解决这个问题,会通过推理去考虑事件发生的每一种可能性,最后推导出结果优点 简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法(时间复杂度很高,通过不了,只能通过部分案例)缺点 大部分题目使用枚举拿不到满分什么是模拟?仅仅使用较简单的算法和数据结构的题目。模拟顾名思义,就是按照题目的要求,一步步写出代码。特点:模拟题目通常具有码量大,操作多、思路繁复的特点。原创 2024-03-14 19:13:59 · 897 阅读 · 0 评论 -
时间复杂度
比如,一个算法的时间复杂度为O(n),表示随着问题规模n的增加,算法的执行时间线性增长。O(1)表示算法的执行时间是常数级别的,与问题的规模无关。时间复杂度分析主要关注的是算法中占用主要时间的操作,例如循环,递归等。通过分析这些操作的执行次数,可以确定算法的时间复杂度。时间复杂度有以下几个级别:常数级别,对数级别(O(log n)),线性级别(O(n)),线性对数(O(n log n))它衡量了算法的执行效率。2 线性阶 for循环,消耗的时间是随着n的变化而变化的。原创 2024-03-12 22:18:47 · 695 阅读 · 0 评论 -
java桶排序
风铃响原创 2024-03-12 16:10:29 · 415 阅读 · 0 评论 -
java的归并排序
算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。3 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到移到下一位置。1 申请空间,使其大小为两个已排序序列之和,该空间用来存放合并后的序列。2 设定两个指针,最初位置分别为两个已经排序序列的起始位置。5 将另一序列剩下的所有元素直接复制到合并序列尾。(左侧数组起始元素,右侧数组起始元素)原创 2024-03-11 15:39:29 · 580 阅读 · 0 评论 -
java实现快速排序的方法
所有元素比基准小的摆放在基准的前面,所有元素比基准大的摆在基准的后面,在这个分区退出来之后,该基准就处在数列的中间位置。快速排序:通过一趟排序将待排记录分隔成独立的两个部分,其中一部分记录的数据均比另一部分的数据小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。快速排序的最坏运行情况就是O(n^2),比如说顺序数列的快排。3 递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。(随机选择奇数,比它小的排前面,比它大的排后面)1 从数列中挑出一个元素,为“基准”原创 2024-03-10 18:56:20 · 590 阅读 · 0 评论 -
java各种集合...习题
题目 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数个位数之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。例如,2022排在409前面,因为2022的数位之和位6,小于409的数位之和13.又如,6排在2022前面,因为他们的数位之和相同,而6小于2022。题目:给定一个长度为N的数组A,请你先从小到大输出它的每个元素,在从大到小输出它的每个元素。题目:设有n个正整数1....n,将他们链接成一排,相邻数字首尾相接,组成一个最大的整数。原创 2024-03-09 06:54:51 · 588 阅读 · 0 评论 -
java插入排序
2 从头到尾一次扫描未排序序列,将扫描到的每个元素一次插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。插入排序是一种最只管的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。1 将第一待排序序列第一个元素看作一个有序序列,把第二个元素到最后一个元素当成是未排序序列。原创 2024-03-09 20:10:04 · 395 阅读 · 0 评论 -
java选择排序
风铃响,故人归原创 2024-03-09 18:59:02 · 497 阅读 · 0 评论 -
java实现冒泡排序
题目 在一个神秘的岛屿上,有一只探险队发现了一批宝藏,这批宝藏以整数数组的形式存在的,每个宝藏上都标有一个数字,代表了其中珍贵的程度,然而,由于某种神奇的力量,这批宝藏的顺序被打乱了,探险队需要将这批宝藏按珍贵程度进行降序,以便更好地研究和保护他们。作为探险队的一员,肖恩需要设计合适的排序算法将宝藏按照珍贵程度进行从小到大排序。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误,就把他们交换过来。输入的第二行包括n个数字,第i个数字a[i]表示第i个宝藏的珍贵程度。1 比较相邻的元素。原创 2024-03-09 15:05:10 · 730 阅读 · 0 评论 -
蓝桥杯-队列
风铃响原创 2024-03-07 21:00:06 · 682 阅读 · 0 评论 -
蓝桥杯-Stack
题目 小蓝有一个长度为n的括号串,括号串仅由字符(、)构成,请你帮它判断以下该括号是否合法,合法请输出Yes,反之输出No。比如1,2,3依次入栈,出栈顺序就是3,2,1。Stack<引用数据类型> stack=new Stack<>();例如()(),(()),(())()军事合法括号序列。若s,t都是合法括号序列,则st也是合法括号序列。若s是合法括号序列,则(s)也是合法括号序列。查看堆栈顶部的对象,但不把它从堆栈中移除它。移除堆栈顶部的对象,并作为此函数的。输入10 (()(()))()原创 2024-03-07 20:44:18 · 642 阅读 · 0 评论 -
蓝桥杯-Map集合
题目:输入一个数字n,然后输入一个 为n(n<=1e5)的数组an(-1e9<=ai<=1e9)请你输出出现频率最大的数,如果有多个数频率最大,按从小到大依次输出。2.HashMap实现了Map接口,根据建的HashCode值存储数据,具有很快的访问熟读,最多允许一条记录的键为null,不支持线程同步。返回指定键所映射的值,没有该Key对应的值则返回Null,即获得Key对应的value。方法获取指定key对应的value,如果找不到key,则返回设置的默认值。输出 0 -1 2 5。原创 2024-03-07 18:13:57 · 549 阅读 · 0 评论 -
蓝桥杯-Set
set一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。注重独一无二的性质,该体系集合可以知道某物是否是存在与集合中用于存储无序(存入和去除的顺序不一定相同)元素,值不能重复。特点:可以用来去重 元素无序。原创 2024-03-06 17:08:36 · 847 阅读 · 0 评论 -
Scanner类的九大输入方法,三种输出方法
System.out.println(): 与print()基本一样,区别就是输出完成后执行换行。与print()基本一样,区别就是输出完成后执行换行。System.out.printf("格式控制",表达式1,表达式2.....表达式n)基本格式:两个参数,第一个是格式控制符,第二个可变长,表示带输出的数据对象。输入两个正浮点A,B,输出A+B并且四舍五入保留两位小数。next()//接受不带空格的字符串,遇到空格结束。-6% 整数,左对齐,输出宽度为6。原创 2024-03-04 08:55:49 · 505 阅读 · 0 评论 -
java方法
println()是一个方法System是系统类out是标准输出对象这句话的用法就是调用系统类System中的标准输出对象Out中的方法println()原创 2024-03-03 16:53:51 · 322 阅读 · 0 评论 -
Java接口
风铃响原创 2024-03-03 19:11:59 · 440 阅读 · 0 评论 -
java对象和类
成员变量是定义在哎类中,出方法体之外的变量,周二中变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。变量的声明和初始化都是在方法中,方法结束后,变量会自动销毁。对象:对象是类的一个实例,有状态和行为。对象是根据类创建的。在java中,使用关键字new来创建一个新的对象。3:初始化:使用new创建对象时,会调用构造方法初始化对象。1:声明:声明一个对象,包括对象的名称和对象的类型。类:类是一个模板,它描述一类对象的行为和状态。2:实例化:使用关键字new来创建一个对象。原创 2024-03-03 17:35:55 · 116 阅读 · 0 评论 -
java基础类型
在java中,引用类型的变量非常类似与c/c++的指针。java语言提供了八种基本类型,六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一。long数据类型是64位,有符号的二进制补码表示的整数,默认值是0L。short数据类型是16位,有符号的以二进制补码表示的整数。int数据类型是32位,有符号的以二进制补码表示的整数。数据类型是8位的,有符号的,以二进制补码表示的整数。原创 2024-03-03 10:54:25 · 215 阅读 · 0 评论 -
String和String Builder
String的值是不可变的,StringBuilder的值是可变的。Sting每赋予一个值,都会产生一个新的地址,而StringBuilder是在原有地址上一直更改的,节省了大量的空间,这也代表了它运行的熟读更快。新数也应满足整数的常见形式,即除非给定的元素位零,否则反转后的新数的最高位的数字不应该为零。一个可变的字符串类,我们可以把它看作一个容器,这里的可变直的是StringBuilder对象中的内容是可变的。//返回一个个新字符串,它时此字符串的一个子字符串()//将指定字符串连接到此字符串的结尾。原创 2024-03-04 01:14:51 · 1114 阅读 · 0 评论 -
蓝桥杯-排序
Arrays.sort(T[] arr,Comparator<T>c)用Comparator接口实现自定义顺序规则。java引入Lambda简写comparator:Arrays.sort(arr,(o11,o2)->o1-o2)这种形式是对一个集合的所有元素进行排序,并且按从小到大的顺序。Lambda其实是对comparator进行重写。这种形式是对一个数组的所有元素进行排序,并且时按。如果return o1-o2;实现Comparator接口实现降序。原创 2024-03-06 16:03:51 · 1018 阅读 · 0 评论 -
蓝桥杯-List集合
ArrayList就是动态数组,它提供了1.动态的增加和减少元素2。实现了List接口3.灵活的设置数组的大小4.底层用数组实现List集合类中的元素有序【即添加顺序和取出顺序一致】并且可以重复使用。//add表示从尾部添加元素//重复元素//显示列表中的元素List集合中的每个元素都有其对应的顺序索引,即支持索引(索引从0开始)。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。原创 2024-03-05 21:44:30 · 950 阅读 · 0 评论 -
蓝桥杯-数组
java中提供的数组是用来存储固定大小的同类型元素。数组是多个相同类型数据按照一定顺序排列集合,并使用一个名字命名,通过编号的方式对这些数据进行统一的管理。数组的特点数组本身是引用类型数据,但数组中的元素可以是任何数据类型。创建数组对象会在内存总开辟一整块连续的空间,占据空间的大小取决与数组的长度和数组中元素的类型。数组中的元素在内存中是一次紧密排序的有序的数组一旦初始化完成,其长度就是确定的,而数组的长度一旦确定就不能修改。原创 2024-03-05 15:11:58 · 468 阅读 · 0 评论 -
蓝桥杯-常见的数学方法
题目:输入n个整数a1,a2,a3,a4...an,就这n个数的最大值max,最小值min,以及|ai-aj|绝对值的最大值(i!=j)(n<=1000,ai<=1000)用于取a的平方根,其中a的值不能为负数。原创 2024-03-04 19:15:48 · 547 阅读 · 0 评论 -
蓝桥杯-大小写转换
字符串名.toUpperCase()//将字符串中的字母全部转换成大写,而非字母的不受影响。字符串名.toLowerCase() //将字符串中的字母全部转成小写,非字母不受影响。输入一个字符串,将大写改为小写,小写改为大写,其他字符不变。一个字符a异或数字32就可以完成大小写转换。将一个字符串中大写改为小写,小写改为大写。原创 2024-03-05 10:14:14 · 535 阅读 · 0 评论