- 博客(78)
- 收藏
- 关注
原创 CF 673A.Bear and Game(Java实现)
遍历n个数据与i-1比较,如果大于15,说明要关电视了,最多还看15分钟(即i-1的值+15)。反之如果小于等于15,那他就继续看,直到比赛结束或者关电视。由于数据输入中没有起始0分种和90分钟,所以首尾添上方便计算。输入n个数据,表示在该分钟时有趣。如果连续15分钟都是无趣,则关闭电视,问利马克看多久电视。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-03-18 12:46:17
182
原创 CF 452A.Eevee(Java实现)
首先给了长度,那我先判断长度相同的单词,然后再一一对比,如果都能通过,那就输出这个单词。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。输入一个数字-长度,输入一个字符串。判断这个字符串是具体的哪一个单词。
2025-03-04 23:12:19
194
原创 CF 886A.ACM ICPC(Java实现)
首先判断总和是不是一个偶数,如果不是就“NO”。由于小何同学算法不好,只能使用三层for循环强行判断某三个值是否能等于总和的一半,可以就“YES”。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。输入6个值,判断某三个值的和能够等于另外三个值的和。
2025-03-03 23:09:00
277
原创 CF 118A.String Task(Java实现)
将输入的字符串改为字符数组,考虑到任意位置插入的情况,所以主要选择LinkedList,并遍历判断如果是元音就remove。如果是辅音,首先判断是否是大写,如果是大写就调用set方法改为小写,然后在其位置add('.')。输入一个字符串,遍历每一个字符,如果是元音字母就删除,辅音字母就在其前面增加一个'.',且所有字母输出都是小写。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-03-02 23:58:56
216
原创 CF 109A.Lucky Sum of Digits(Java实现)
由于是最小组合,即判断4能最多有多少个。但是如果一个值能完全被7整除,那就不需要4了,只用7组合的话位数会更短。(例如28总和,可以是4个7,也可以是7个4。如果完全判断4最多的情况位数反而更长了,所以要考虑能被7完全整除的情况)。此外由于组合可能会过长,用于输出答案的数据类型不能用数字表示,只能输出字符串,否则会由于溢出而显示错误答案。给定一个值,判断这个值能否被4和7组成,如果能就输出最小的组合。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-03-01 18:24:27
194
原创 CF 106B.Choosing Laptop(Java实现)
(这个题我没考虑好用什么结构,所以采用了二维数组)new一个n行5列的二维数组,第五列参数就是序列,双重for循环判断a行是否完全小于b行,小于则给对应行的第5列赋0。最后用Arrays.sort针对每行的第4列价格排序,输出第一个n行5列不为0的序列。一共n组数据,每行数据包括三个参数和一个价格,隐藏了一个值->序列。每行比较其他行参数,如果a行的三个参数全都小于b行对应参数,则过时不考虑。筛除过时电脑后,对价格进行排序,价格最小且不过时的电脑输出对应的序列。见解,希望能得到您的指点和点悟;
2025-02-28 20:35:23
190
原创 CF 106A.Card Game(Java实现)
需要判断a,b的大小和花色。由于大小等级不按ASCII码排序,那就按indexof下标排序,下标越小则牌就越小。然后根据花色判断:1.a是王牌,b不是时,a胜;2.a是王牌,b是王牌,a>b,a赢;3.a不是王牌,b不是王牌,且a,b花色一致,a>b,a赢。定义一个字符是王牌,打出第一张牌a,第二张牌b。如果只有a是王牌花色直接赢。如果a,b同花色且a>b则a赢;如果只有b是王牌,a输。如果a,b都不是王牌且不同花色,不比较直接输。如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-27 23:30:07
292
原创 力扣 807. 保持城市天际线(Java实现)
所谓四个方向高度不变的增量,其实就是arr[i][j]与同i行最大值同j列最大值之间的最小值的差,有点绕,举例:grid[0][0]的高度增量=同0行最大值8与同0列最大值9之间的最小值,即8的差为8-3=5。同理推出其他位置的增量求和。用一个行为2列为grid.length的二维数组存储每行每列的最大值,例如第一行最大值存在[0][0],第一列最大值存在[1][0],依此类推。然后重新遍历grid的每个元素进行题目分析所述的操作,计数器+=Math.min(行最大值,列最大值)-grid[i][j]。
2025-02-26 17:43:16
536
原创 CF 90A.Cableway(Java实现)
每走一辆车则到达山顶的时间就多一分钟,那只需要计算走了多少辆车。如果按照笨方法,顺着题目思路去做,每辆车一走,车人数就-2,如果三个车都没人了就结束。输入三个数字分别代表r,g,b三组学生数量,缆车按照r-g-b-r的方式循环,每一分钟来一辆车,且初始0时r车准备出发。全程上山时间为30分钟。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。但是这样看呢,重复的代码太多了,我们就再重新理一理。
2025-02-26 16:46:05
428
原创 CF 74A.Room Leader(Java实现)
(这个翻译还是很奇怪,hh)输入n组数据,每组数据包括角色名字,赢几场,输几场,和5场分数。题目要求输出最多分数的角色名字,则需要计算出每个角色获得的分数=赢场数*100+输场数*-50+5场分数总和。一共5组数据,使用HashMap一一对应每个角色名和分数。在存值时进行数据处理。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-26 14:16:11
227
原创 力扣 3248. 矩阵中的蛇(Java实现)
首先设置初始位置=0,当读取操作时进行对应的操作。由示例可以看出,UP操作就是i-=n;RIGHT操作就是i+=1;DOWN操作就是i+=n;LEFT操作就是i-=1.给定一个值n,既是矩阵边长还是操作次数。蛇可以进行上下左右操作,问操作完毕后的位置。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-25 20:41:23
492
原创 力扣 3280. 将日期转换为二进制表示(Java实现)
输入一个String类型值,用split("-"),分割每个值,再通过Integer.toString(int,int)将值进制转化为2。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。给定一个10进制日期,将年月日转化为2进制。
2025-02-25 18:49:20
271
原创 力扣 3285. 找到稳定山的下标(Java实现)
从下标0遍历数组,如果height[i]>threshold,则list.add(i+1)给定一个数组和一个高度,如果数组中某一个元素>threshold,则输出这个元素下标+1。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-25 18:39:10
180
原创 CF 58A.Chat room(Java实现)
题目说的意思是任意删除字母,能否组成"hello",实际就是判断'h'、'e'、'l'、'o'的下标是否一个比一个大,同时看'e'和'o'之间是否有两个'l'。这里我使用了indexof函数,判断'h'的首次出现位置,确认有‘h’时就使用substring函数删掉前面的所有字符,再判断‘e’的位置,同理删除前面的所有字符,依次类推。=input.lastIndexOf("l"),判断是否有两个‘l’。但是这么看来重复的代码有点多,你可以设定一个方法,通过调用解决反复冗杂的问题,也可以换一个方法。
2025-02-25 18:17:07
586
原创 CF 56A.Bar(Java实现)
首先用list存储一个酒精清单,方便使用contains函数直接判断。我选择统一用String类型存值,然后判断这个值是否在list中,如果存在则增加计数器,如果不存在,就有可能这个值是数字,通过正则表达式判断是不是数字,是数字是用int替换数据类型,再判断是否小于18,确定计数器是否+1。输入n组数据,每组数据可能是数字也可能是字符串。当输入的数字小于18时,计数+1;当输入的字符串属于酒精饮料清单,计数器+1;见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-24 15:32:34
416
原创 CF 29A.Spit Problem(Java实现)
这个题和昨天的题有点相似,也是看区间。所以我反手就用笨方法,用HashMap键存储骆驼射击的区间,值存储相对应的反过来的区间(即,有一个骆驼的设计区间为此才能够互相吐口水)给定n组数据,每组数据包含a初始位置,b射击距离。且只能击中a+b位置处的另一只骆驼。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-24 14:34:14
311
原创 CF 14B.Young Photographer(Java实现)
用left定义公共区间的左边界,right定义右边界。每组判断是否更新左右边界,全部更新完后,判断摄影师是否在区间内,在则不动输出0;如果不在,那么x<left就移动left-x;如果x>right就移动x-right。同时如果left>right说明边界不存在,就输出-1。一共n位运动员,摄影师目前的位置在x,下面n行是运动员奔跑的起点和终点。摄影师需要至少移动多少格才能同时处于n位运动员共同的区间位置。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-23 21:42:24
247
原创 CF 13A.Numbers(Java实现)
因此我又写了一个方法,不断截取最后一位的字符,如果是字母就又转化为10进制,累加。但是答案最后还是不对,最后选择用进制转化的原理获取值,而不是直接通过封装好的函数获取值。输入一个值a,输出一个分子一个分母,分母是a-2,分子是一个累加和,累加的是:a的2至a-1的每一个进制转换后的值的每一位数字和。举例输入5,计算5的2进制,3进制,4进制(2至a-1进制),的每一个值每一位的累加,5的2进制=101,每位相加=2,3进制=12,每位相加=3,同理4进制=11,每位相加2。见解,希望能得到您的指点和点悟;
2025-02-23 20:36:00
458
原创 力扣 66.加一 (Java实现)
首先跟着题目思路走,将数组按位*10可以得到数字,再加一,加一后按位%10,可以得到新的数组。但是此处数字会过大,导致数字溢出,切换为long型后,数字过大也会让乘除的操作精度丢失。这个题目的重点就在于最后一位,如果最后一位小于9,则最后一位+1,然后直接输出数组。如果是9,则考虑进位,如果全是9,则进位后首位为1,其余为0;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。给定一个数组,可以组成一个数字,将数字加一后,返回新数组。今天走人户,所以在网吧做进不去cf,今天就做一道力扣吧。
2025-02-16 22:17:36
331
原创 CF 137B.Permutation(Java 实现)
由于样本量本身就是n,无论怎么给数据要么是重复要么不在1到n的范围,只需要遍历1到n判断数据组中有没有i值即可。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。输入n个样本,将样本调整为从1到n的包含,需要多少此更改。
2025-02-15 20:52:02
379
原创 CF 144A.Arrival of the General(Java实现)
首先,如果数据有重复项,例如示例二中,最矮的数据就是最后一个出现的数据位置,最高的数据就是最先出现的数据位置;其次,最高和最矮的位置关系,如果最高的在左边,最矮的在右边,例如示例一,就互不干扰,直接计算距离。如果二者交换,那么当某一方先往另一方移动时,就会产生一次交换,帮助另一方移动一次。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。一个n个身高数据,问最高的到最前面,最矮的到最后面的最短交换次数。
2025-02-15 20:25:17
754
原创 CF 148A.Insomnia cure(Java实现)
这道题翻译出来后比较难理解,但是实际情况就是从1遍历d,看能不能被前四个值整除。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。由上所述,存值后判断是否能整除,整除就答案+1。
2025-02-15 19:57:24
406
原创 CF 336A.Vasily the Bear and Triangle(Java实现)
由于是等腰三角形,所以三角形的两腰边长就是x+y。但是要考虑符号和输出就需要考虑四个象限的位置。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。由画图辅助可以判断具体输出象限和符号。
2025-02-12 15:21:44
154
原创 CF 127B.Canvas Frames(Java实现)
通过题目观察可以看出,此处要求的数学逻辑就是有多少组长度相同的木棍,每组两根木棍(所以4 4 4 4是两组木棍),组成矩形的个数就是组数/2。由于数据是int型,所以不用考虑多出来一组。输入n个数据,每个数据表示木棍长度,两组长宽各自相同的木棍组成一个矩形,问能组成多少个矩形。(即两个h长度和两个w长度的木棍)见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-12 14:28:07
205
原创 CF 450A.Jzzhu and Children(Java实现)
由于题目在示例中给出了逻辑顺序,因此我的第一想法是通过HashMap存值,每个孩子取完后就remove,直达map.size()==1。此时这个字典的键就是答案,中途只需要更新值就行。一共n个孩子,每次给每个孩子给m颗糖果,第i个孩子需要arr[i]颗。如果>m,就会重新排队,同时arr[i]-=m.问最后一个离开的孩子是谁。但是我换了思路看来一下数据,其实就是比较每个值除以m后哪个值商最大,商同最大的下标越靠后就是答案。如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-11 19:30:42
215
原创 CF 69A.Young Physicist(Java实现)
存储n*3的矩阵,按序存值,然后按列遍历累加同列不同行的值,只要有一个不为0直接NO。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。一个n*3的矩阵,判断每一行同列相加是否为0。
2025-02-08 21:32:50
258
原创 CF 38A.Army(Java实现)
第一行输入级别总共n个,第二行输入相邻两级晋升需要的年份,第三行输入题目要求从a到b,输出答案需要多少年。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。实际就是从a到b的年份累加。
2025-02-08 21:17:55
237
原创 CF 34A.Reconnaissance 2(Java实现)
这个题与32A相似,只不过这个题需要自己计算最小身高差d,并且需要两个士兵位置相邻,且围城原创,需要取模。依然通过双循环的方式,如果满足相邻身高差小于原先的d且下标相邻,则更新身高差d。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-08 20:58:12
311
原创 CF 32A.Reconnaissance(Java实现)
一共n个士兵的身高数据,要求身高差不超过d的两人可以组成一组,同时(a,b)和(b,a)是两组。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。获取存值后,双循环匹配,判断是否满足身高差,满足就总数+2。
2025-02-08 20:34:19
271
原创 CF 278A.Circle Line
输入n个数据作为路径,求从a到b的最短距离,需要将其相成一个圆圈,既可以从小往大走又可以从大往小走。依然将数据存为数组,通过下标进行操作,既然说了有两种方式那就计算两种方式哪个更快就输出谁。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-02-07 23:45:30
368
原创 CF 465B.Inbox (100500)(Java实现)
遍历邮件,如果当前是未读,那么所需步数+1,如果下一封也是未读,不用管(遍历后会直接+1),如果下一封是已读,那就回到目录(此时步数+1),直到遇到下一个未读(由于设定了未读+1,所以这里也不需要其他操作)。由于示例1,101区间是直接按顺序读过去的是三次,但是遇0回到目录再读仍然是3次,所以不影响。如果存入的数据没有1,那就输出0。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。计算读取所有未读邮件所需的步数,其中1代表未读,0代表已读。
2025-02-05 22:19:33
465
原创 CF 581A.Vasya the Hipster(Java实现)
红色袜子数量a,蓝色袜子数量b,题目是个潮哥儿,首先选择两种袜子混搭,搭不出来就纯色。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。混搭数量取决于最小数量,剩余的纯色数量取决于哪个还有剩余且数量要/2。
2025-02-01 18:42:55
223
原创 CF 761A.Dasha and Stairs(Java实现)
能够连成一串数字的条件考虑:1.偶数与奇数差为1;2.偶数与奇数相等,且不为0。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。大概意思是输入偶数值+奇数值,判断是否能够凑成一连串数字。
2025-01-30 14:33:28
643
原创 CF 764B.Timofey and cubes(Java实现)
存入数组,遍历时判断i%2==0时(数组下标0开始,所以题目分析没有错),对换。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。输入n个数字,首尾交换,奇数对换,偶数对不换。
2025-01-30 14:22:12
565
原创 CF 766A.Mahmoud and Longest Uncommon Subsequence(Java实现)
(小何同学语文不太好,看这个题弯弯绕绕,看不懂一点,哈哈哈。)在尝试示例中分析之后,题目的意思大概就是,两个字符串相同就输出-1,不同就输出最长的那个字符串长度。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。数据输入存值之后,直接用三目运算符输出结果。(长长的题目用短短的代码,就很棒)
2025-01-30 14:13:17
335
原创 CF 41A.Translation(Java实现)
见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。将读取的值分ab,再将b.reverse和a比较,一样就YES。根据示例千言万语一句话,reverse。
2025-01-26 13:54:04
197
原创 CF 339A.Helpful Maths(Java实现)
如上所说核心思路,但是我要使用笨方法,输入一串式子用split分割开,但是此时需要用到转义字符,即函数内参数不能直接使用“+”,而是“\\+”。分割开后转为int类型就能sort排序再输出即可。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。输入一串式子,输出从小到大排列的式子。
2025-01-25 22:31:56
317
原创 CF 420A.Start Up(Java实现)
乍一看这个题像是字符版的回文数,但是这里说到的是镜子对照,所以部分字母在镜子对照后会与原字母朝向不同等情况,此情况时就要排除。那么首先我们需要确认输入的字母在镜子对照前后始终如一,其次应该是回文字符串,不满足任一情况都“NO”见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-01-24 17:24:21
266
原创 CF 831A.Unimodal Array(Java实现)
如题所示,判断是否为单驼峰数组,规则为:1.前半段严格上升,必然本值>上一个值。2.峰值是唯一的,但其峰段可以是一个点也可以是连续的多个点组成的段。3.经过峰段的后半段是严格下降的,必然本值<上一个值。由题目分析,将数组分成前中后三段,将数组峰值作为分界点,确认此时为前半段或后半段。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-01-23 17:09:18
564
原创 CF 583A.Asphalting Roads(Java实现)
题目说十字路口处横竖都没有沥青的才铺上沥青,说了半天的水平垂直街道,实际就是一个二维数组a[j][k],如果j或者k有沥青则此处不铺沥青。由以上所说,那么置换思路成j和k不能重复出现,就能转换成row和col两个HashSet,只要新输入的被包含则不铺设,不包含就铺设。见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。
2025-01-20 19:28:13
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人