随笔分类 - 算法训练
瓷砖铺放
摘要:解析: 这个题目有点像二叉树,在每个节点都有两个选项,要么减1,要么减2,直到正好能完整的铺满地板为止。写一个方法充当初始节点,初始节点就相当于地板的长度,然后在方法里面又可以实现减1和减2两种情况,不断重复这个过程,也就是递归。
集合运算
摘要:解析: 根据交集、并集和余集的特性,封装了三个方法分别进行处理。因为交集、并集和余集中的数字个数都是不确定的,所以用集合ArrayList接收数据比较适合,再将集合转变成数组,对数组进行升序处理就得到了最终的结果。
回文数字
摘要:解析: 这题我觉得主要考察的地方是字符串的使用,主要是两个地方,一个是字符串的逆序,另一个是字符串中字符的相加。字符串的逆序实现方法比较多,我比较常用的是用过String类的substring()方法将这个字符串从后往前截取,拼成一个新的逆序字符串;也可以使用StringBuffer类的revers
核桃的数量
摘要:解析: 从我考虑的角度来说,这题没怎么考察知识点内容,更多的是侧重考察数学的思维,所以也挺容易的,找出了核桃数量和各组人数间的关系就很好做出来了。根据题目的三个要求,我们可以得出以下两点: 每袋的核桃数量都可以整除各组的人数 每袋核桃数量是各组人数的最小公倍数 通过这两点就可以看出这题的目的了,无非
算法: 黑色星期五
摘要:解析: 题目给了一个很有用的信息 "1998年1月1日是星期四" ,我们可以根据这个信息为依据判断当前是星期几。另外需要自定义两个方法,一个方法对闰年和平年的判断,一个方法返回不同年份每个月的天数。
比较字符串
摘要:![](https://img2020.cnblogs.com/blog/1151930/202004/1151930-20200413225050059-602986423.jpg) ``` package _4_9_test; import java.util.Scanner; /*比较字符串 * * */ public class EightyOne { public static void
连续正整数的和
摘要:``` package _4_9_test; import java.util.ArrayList; import java.util.Scanner; /*连续正整数的和 * * */ public class SeventyNight { public static void main(String[] args) { // TODO Auto-generated method stub Ar
蓝桥杯:数字游戏
摘要:这题我做了半天也没看出来具体考的知识点是什么,综合运用也没发现具体运用什么。我自己是用for循环暴力算出来的,但是超限时80%多,看了下其他老哥的解析,他们用公式法可以正常通过。但是我有个问题就是,他们的算出来的规律都是拼出来的,看不人任何规律可言,比赛的时候感觉用等差公式去做的话有点迷哇。 这里就
蓝桥杯:IP判断
摘要:看到这题第一个想法就是题目要考查字符串的截取,将一个IP地址中的4个位段中的数字截取出来,再进行判断看符不符合规则。简单的说就是考查字符串的处理,既然是对字符串处理,那除了截取字符串再进行判断这种方法以外,用正则进行处理也很方便。比赛的时候突然想不到用正则的话,规规矩矩的用截取再判断也挺稳的,就是比
s01串
摘要:解析: 题目有一点问题,漏了一句话"输入一个整数n"。字符串s01的初始内容是"0",要求出经过n次变幻后的字符串。每次变幻都是0变1,1变01.所以可以把一个字符串分解成一个字符数组,这样可以对数组里的每个字符进行单独转换,最后将数组里所有的字符加起来就是一个新的字符串。
蓝桥杯普及题:Tom数
摘要:这个题目的意思很直观,无非就是输入一个正整数,再将这个正整数里面的每个数字进行相加,得到最终的结果进行输出。 解析:这个题目一眼看过去就可以发现要考查的知识点就是:遍历一个字符串中的单个字符。 但是其实除了这个点,还有个点也要考虑进去,那就是"int的取值范围",这个地方比较容易忽视,我第一遍就错在
蓝桥杯普及题:蛇行矩阵
摘要:其实刚看到这个题目的时候完全没看懂意思,走进误区了,还以为‘矩阵’这俩字是关键字,还联想到了高数里面的矩阵,后来看了别人的解题思路才发现就是一个简单找规律的题目。 解析 :这题的规律有很多种,也有很多实现方法,我简单试了三种方法,这里只记录一种。 先说下这组数据的几个特点: 数据的行数和列数由输入的
蓝桥杯普及题:用筛法求之N内的素数
摘要:题目要求输入一个正整数N,筛选出N以内的素数。 解析:先搞清楚素数是什么,素数也称为质素,是在所有大于1的自然数中,只有1和这个数本身两个因数的数,例如:1、3、5、7等。所以对素数的判断条件可以通过N%i==0(2<i<N)来进行判断。 测试效果:
蓝桥杯入门题:字符逆序
摘要:直接上题目 大概意思是,需要手动输入一串字符串,然后倒序输出。 解析:这里有个地方容易忽视,就是输入的字符串中含有的空格、tab符号等。而字符串的输入我们需要用到Scanner类(扫描器),这个类下面有两个方法都可以实现字符串的接收,一个是next()和nextLine()方法。在平常的使用中,我们
蓝桥杯入门题:Hello, world!
摘要:直接上题目,大概意思就是要手动输入一串数字,然后输出每个数字对应的ASCII值,可以出现符号、空格、新的行等。 解析:说到ASCII,在Java中就一定绕不过Char,也称为字符。Char在Java中是字符型,占两个字节,Char常量的存储也是通过存储该字符在Unicode中的顺序进行存储的。例如: