- 博客(68)
- 收藏
- 关注
原创 kotlin可视化小游戏乾坤大挪移
游戏规则游戏初始有三个坑位,第一个坑位由上至下摆了n个盘子,将这n个盘子移动至其他坑位且保持他们的相对位置不变即获胜 要求有二:1、每次只能移动一个盘子 2、移动后大盘子不得在小盘子上面核心代码这个游戏在实践中如果需要多人配合完成是非常困难的,因为每个人的思路不一样,一旦断开又很难接上,一旦走错几步,就很难恢复了。但是在程序中使用递归是很容易解决的,就是一个层层分解的过程,核心代码不超...
2020-03-21 21:56:30
1056
1
原创 kotlin学习-豆瓣电影爬虫及可视化
之前做过豆瓣的模仿项目,很多人管我要代码,其实我也找不到了,因为当时就放百度云了,并没有放到码云或是github的习惯。找到也不知道能不能跑起来了,所以我就都没回复了。最近学kotlin,还发现可以通过爬虫的方式获取到相应数据,所以就模仿了豆瓣的电影模块,效果如下:因为项目的主要目的是学习kotlin,其他能用第三方的都用了第三方????。项目地址:https://github.com/sh...
2020-03-21 21:30:59
441
原创 蓝桥杯-算法训练-前缀表达式
没有用栈,前缀还是可以直接用正则的import java.util.*;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main { public static void main(String[] args) { Scanner scanner = new ...
2020-03-05 17:35:34
210
原创 蓝桥杯-算法训练-2的次幂表示(Java)
题目给了提示用递归,递归确实好理解一些import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); ...
2020-03-04 21:59:12
222
原创 蓝桥杯-算法训练-未名湖边的烦恼(java)
因为m和n的取值范围是0-18,所以我就直接dfs了import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = scanner.nextInt();...
2020-03-04 21:17:57
192
原创 蓝桥杯-算法训练-审美课(Java)
对完全相反的审美进行异或操作的话就会得到全1,所以把每个人的审美存成二进制数字。把审美数据存到map里面,这样只需要一次遍历就可以得到答案了。import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(Sy...
2020-03-04 12:01:17
140
原创 蓝桥杯-基础练习-Sine之舞(Java)
An和Sn都用递归的思路求解会好理解一些import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); ...
2020-03-03 15:19:59
241
原创 蓝桥杯-基础练习-数的读法(Java)
写了好久啊,我好菜啊import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); String number = scanner.nextLine(); ...
2020-03-03 15:18:32
739
原创 蓝桥杯-龟兔赛跑预测(Java)
龟的时间就是l/v2兔的时间是多方面因素决定的,可以假设它每跑m米就休息s秒,m=乌龟超过它的距离+timport java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); ...
2020-03-02 17:01:29
417
原创 蓝桥杯-基础练习-2n皇后(Java)
跟n皇后是一样的思路,不过每行要放两个棋子。黑皇后和白皇后的棋子分开存储就行了。import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main{ private static int n; private static List<int[]&g...
2020-03-02 13:55:06
209
原创 201903-1 小中大
java里面如果用scanner.nextInt()一个一个地去读一定会超时我是用scanner.nextLine()把一行都读进来,然后split之后只取想要的(第一个,最后一个,和中间的一个或者两个)java 满分代码import java.util.Arrays;import java.util.Scanner;public class Main { public...
2019-12-12 14:06:17
165
原创 201903-2 二十四点
中缀表达式求值:用两个栈,一个存操作符,一个存操作数。需要注意的就是,如果当前遍历到的操作符的优先级小于或者等于操作符栈的栈顶操作符,那么就需要取出栈顶操作符和两个栈顶操作数进行运算。java满分代码import java.util.LinkedList;import java.util.Scanner;public class Main { public static v...
2019-12-11 15:56:02
150
原创 201709-1 打酱油
首先看钱有几个50,先买5送2的然后看剩下的够几个30,再买3送1最后看剩下的够几个10,买单瓶的奉上java满分代码import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(Syst...
2018-12-14 05:58:33
211
原创 201712-2 游戏
判断报的数是否要被淘汰使用number % k == 0 || String.valueOf(number).endsWith(String.valueOf(k)),确定要被淘汰的小朋友加入remove数组中,一轮结束后再一起淘汰,不然会出现下标错误。注意经过的一轮的淘汰后可能没有剩下小朋友了,所以要取出最后一个被淘汰的或者唯一没有被淘汰的小朋友输出。奉上java满分代码import j...
2018-12-14 05:35:17
559
原创 201712-1 最小差值
import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); ...
2018-12-14 05:01:22
265
原创 201803-1 跳一跳
除了记分需要一个变量外,还需一个变量记录上次得分。如果当前跳到了中心点,那么需要知道上次得分来计算当前的分。即如果上次得分<2,那么当前的分为2,否则当前的分为上次得分+2奉上java满分代码import java.util.Scanner;public class Main{ public static void main(String[] args){ ...
2018-12-14 04:47:46
459
2
原创 201803-2 碰撞的小球
封装小球对象,属性包括位置,方向(向右为1,向左为-1)。移动时pos += dir 就可以了;转换方向就是 dir *= -1。记得在小球到达绳子边界和与其他小球位置相同时要转向。奉上java满分代码import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Mai...
2018-12-14 04:36:41
342
2
原创 201703-2 学生排队
使用list.add(index, Object)来实现对指定对象的移动,移动前记得从list中remove该对象即可奉上java满分代码import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main{ public static void main(S...
2018-12-12 19:57:01
337
原创 201703-1 分蛋糕
使用一个变量weight来记录当前小朋友已经拿到的蛋糕的重量,如果weight超过k,那么weight置0,计数器加一注意在结束遍历时,如果weight大于0,那计数器还应再加一奉上java满分代码import java.util.Scanner;public class Main{ public static void main(String[] args){ ...
2018-12-12 19:53:24
210
原创 201612-3 权限查询
前面几行的权限信息我直接跳过没有用,因为题目已经保证了输入的合法性。(其实这么做的时候,我还是有点心慌的,因为有一次参赛的时候,使用了自以为高明的方法结果只拿了10分
2018-12-11 15:23:45
277
原创 201612-2 工资计算
这道题可以通过题目的条件反推出计算工资的方程式。我觉得如果我参加考试的话,在考场上应该没有办法冷静下来推算方程式诶。所以我使用暴力破解。因为找到答案后就会跳出循环,这样也不会超时。奉上java满分代码import java.util.*;public class Main{ static class Tax{ public int max; ...
2018-12-11 15:17:01
311
原创 201612-1 中间数
时间复杂度是n方,外循环遍历数组,内循环统计数目奉上java满分代码import java.util.*;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); int n = Integer.par...
2018-12-11 15:09:14
215
原创 201609-3 炉石传说
其实这个题并不难,使用面向对象,按照题目思路一步一步走就可以拿到满分。为了使代码更加简洁,我使用一个HahsMap来存储先手玩家和后手玩家,键分别是1和-1,这样每次end的时候把当前玩家的键乘以-1就可以获得另一个玩家。召唤随从和攻击随从时题目给出的索引是从1开始的,所以我用一个list来存放玩家的英雄和随从,其中英雄的下标为0,随从的下标往后顺。奉上java满分代码import ...
2018-12-10 16:36:02
237
6
原创 201609-2 火车购票
座位是否可坐的情况用一个二维数组布尔存储,记为seats,行列固定为20*5。输出座位编号的时候需要转化下,如seats[i][j]的号码应该是5*i + j + 1。座位找到后要及时break,提高时间效率奉上java满分代码import java.util.*;public class Main{ private static final int rows = 20, c...
2018-12-10 16:31:35
232
原创 201609-1 最大波动
下标从1开始遍历数组,使用一个max变量来记录最大的差值。差值使用Math.abs来计算奉上java满分代码import java.util.*;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); i...
2018-12-10 16:25:50
190
原创 201604-4 游戏
题目看下来觉得果断用bfs啊,危险的时间段用一个三维数组来存储就可以了。按照这个思路编下来,发现结果不对。仔细看题目给的例子,发现访问过的点可以多次访问,就果断把visited数组的判断去掉,提交之后发现得了二十分,运行超时,用脚趾头想想也觉得会超时啊
2018-12-09 15:50:34
288
原创 201604-1 折点计数
遍历数组,下标从1到n-2,获取到前一个点,当前点,和下一个点,如果当前点是三个值中最小或者最大的,那么这个点就是折点满分java代码import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new Scanner(...
2018-12-09 15:44:18
189
原创 201512-3 画图
我觉得这道题有两个难点吧,1、坐标转化,原始坐标(i,j),真实坐标应该转换为(rows - j - 1, i)2、填充操作,使用递归填充,递归出口条件时下标越界或者遇到边界或者该位置已被填充,三个出口条件缺一不可奉上java满分代码import java.util.*;public class Main { private static int rows, col...
2018-12-08 11:44:05
158
原创 201512-2 消除类游戏
原始数据用int二维数组存储,要置0的数据使用二维布尔数组存储1、遍历每一行找到每行重复出现超过三次的位置,并将布尔数组中相应位置的值置为true(注意不要直接将原始数组相应位置的值置为0,这样会导致遍历列时元素的值不对)2、列操作同上奉上java满分代码import java.util.Scanner;public class Main { public sta...
2018-12-08 11:02:02
221
原创 201512-1 数位之和
比较简单,奉上java满分代码import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String number = scanner.nextLi...
2018-12-08 10:41:06
146
原创 201509-3 模版生成系统
使用hashmap来存储变量和它对应的值,使用Pattern来匹配{{ var }}模式的字符串,个人感觉这道题用正则表达式很简便。奉上java满分代码import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Scanner;import java.util...
2018-12-07 13:56:03
153
原创 201509-2 日期计算
思路是对于给定的天数days,遍历每个月份的天数d,每次days递减d,如果小于0了,说明就是当前月份,做减法之前剩余的天数就是日子。只要注意闰年的时候2月有29天,然后测试下边界数据,比如说每个月的第一天和最后一天,每年的第一天和最后一天。PS:我觉得用java写的话,这个题还有个小技巧,就是可以用calendar,这样完全不用算
2018-12-07 13:38:46
197
原创 201509-1 数列分段
lastNum记录上一个数字,如果不一样,则计数器加一。注意lastNum的初始值要赋为-1,因为题目中合法的数字是0-1000奉上java满分代码import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner scanner = new S...
2018-12-07 13:27:21
235
原创 201712-3 Crontab(90分)
代码的得分90分,评测结果是内存超限。思路主要是使用一个类来封装CronTab信息,包括命令及其执行时间。其中执行时间使用布尔数组List来存储,顺序是minutes,hours,dayOfMonth,month,和dayOfWeek。使用while循环每分钟遍历一遍crontab查看是否有匹配当前时间的命令,当前时间的分钟小时月份信息通过calendar的get来获取。java90分代码...
2018-12-07 11:15:48
402
原创 201503-3 节日
假设某年某月某日距离1850-01-01有d天,则当天是星期(d%7)+2(若结果是8则是星期一)。需要注意题目要求算出y1,y2中所有年份的节日,而不是只算y1和y2的,这个错误我犯了两次,智障到自己都不信
2018-12-06 14:19:49
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人