![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HD
算法学习
兮山
这个作者很懒,什么都没留下…
展开
-
1720-A+B Coming(java实现)
思路:输入字符串类型,再用Intege的函数来转化成十进制,最后转化成int形式相加即可。进制转换的函数总结://十进制转成十六进制:Integer.toHexString(n);//十进制转成八进制Integer.toOctalString(n);//十进制转成二进制Integer.toBinaryString(n);//十六进制转成十进制Integer.valueOf(“AAAA”,16).toString();//十六进制转成二进制Integer.toBinaryString(.原创 2021-04-13 11:31:07 · 153 阅读 · 0 评论 -
2014-阿牛的EOF牛肉串(java)
思路:这是一道典型的递归求解题,找规律即可;判断最后三位1.当最后一位是O字符时,那么第n-1位字符有两种选择EF,那么这种情况的数目为2f(n-2);(为什么是2f(n-2)而不是2f(n-1)呢,因为这种情况下最后一位情况确定,而第n-1为字符不确定,所以用第二种可能性n-2位可能性即可); 2.当最后一位不是O字符时,那么可以是EF两种情况,(讨论结果的过程与第一种相同,n-1位字符是否为O,在接下来的递推之中只要符合规则,都是只有2f(n-2)种情况);则数目为2f(n-1);这样看来可.原创 2021-03-30 11:14:03 · 119 阅读 · 0 评论 -
2046-骨牌铺方(java)
思路:典型的递推求解,斐波那契,f(n)=f(n-1)+f(n-2);找规律即可import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); if(n>0&&n<=50) { long[] arr=new l..原创 2021-03-28 11:11:57 · 84 阅读 · 0 评论 -
2045-不容易系列之(3)—— LELE的RPG难题(java)
思路:这道题也是类似于斐波那契数列,递归找规律,原创 2021-03-27 10:49:51 · 116 阅读 · 0 评论 -
2044-一只小蜜蜂(java)
思路:首先看到这种题自然而然想起了找规律,仔细观察不难发现,这是一道简单的斐波那契数列的题目。用数组方法比递归好些,递归在循环过程中比较费时间和空间。提示:在用数组调用时,从1-50的路线结果是要超过int类型的字节长度的,要调用long类型数组来加长import java.util.*;public class Main {public static void main(String[] args) { Scanner v=new Scanner(System.in); int N=v.ne.原创 2021-03-21 16:16:23 · 138 阅读 · 0 评论 -
2043-密码(java)
思路:将密码写成字符串的形式然后再用charAt的方法转化成字符串,然后用for循环遍历if比较即可import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); int M=a.nextInt(); while(a.hasNext()) { String str=a.next(); int sum=0,num=0,mum=.原创 2021-03-13 10:56:32 · 119 阅读 · 1 评论 -
2042-不容易系列之二(java)
思路:这道题题目看起来很长,其实本质题意就是老人每次过一个收费站都会被拿走【(总数一半)-1】数量的羊,通过这个方式,从最后剩余的羊,用for循环反方向遍历运算即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); int N=a.nextInt(); while(a.hasNext()) { int m=a.ne.原创 2021-03-12 21:39:35 · 241 阅读 · 0 评论 -
2041-超级楼梯(java)
思路:这一题正是一道我们所熟知的斐波那契数列的简单题,em…,算法练的时间还不长,所以没有第一时间看出来,但是我通过找规律的方式看出来了,本来想的还挺复杂。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); //找规律可知,符合Fibonacci数列,用递归可解 int N=a.nextInt(); while(a.h.原创 2021-03-12 21:36:31 · 293 阅读 · 0 评论 -
2040-亲和数(java)
思路:题意就是求哪两个数各自除了本身的约数之和正好是彼此,这一对数就称之为亲和数。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); int M=a.nextInt(); while(a.hasNext()) { int A=a.nextInt(); int B=a.nextInt(); if(A>=0.原创 2021-03-12 21:33:32 · 457 阅读 · 0 评论 -
2039-三角形(java)
思路:这道题毫无疑问是个水题,但是我刚开始怎么都写不出来,最终在网上看大佬们的代码才恍然,题目给的数据范围是正数而不是整数,所以用int就不合适,要选用double。import java.util.*;public class Main { public static void main(String[] args) { Scanner a=new Scanner(System.in); int M=a.nextInt(); while(a.hasNext()) { Doub.原创 2021-03-09 21:55:59 · 67 阅读 · 0 评论 -
2037-今年暑假不AC(java)
思路:可以将所有节目的终止时间排序,然后再从第一个节目开始,用第一个节目的终止时间与下一个节目的起始时间相比,如果下一个节目的起始时间大于第一个节目的终止时间说明第一个节目可完整播放,依次有序进行比较即可。import java.util.*;public class Main{ //简单的贪心算法,归类练习更有效public static void main(String[] args) { Scanner a=new Scanner(System.in..原创 2021-03-09 21:52:30 · 221 阅读 · 0 评论 -
2036-改革春风吹满地(java)
思路:可以将图形分为一个个的三角形,将一个顶点固定,并与其他两个定点组合,运用三角形的边求面积公式,有序的与一个个顶点组成的三角形相加即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); float area=0; if(n==.原创 2021-03-09 21:48:32 · 86 阅读 · 0 评论 -
2034-人见人爱A-B(java)
思路:就是抛出B集合中与A集合相同的元素,剩下的归于一个集合,输出即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); int m=a.nextInt(); if(n==0&&m==0) break; .原创 2021-03-02 17:46:18 · 158 阅读 · 0 评论 -
2033-人见人爱A+B(java)
思路:思路就是建立数组,相加,但是判断分钟和秒是否超过60的临界情况,再将相加的数据输出即可import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); int n=a.nextInt(); while(a.hasNext()) { int[] A=new int[3]; //创建A数组 int[] B=new i.原创 2021-02-27 17:11:02 · 358 阅读 · 0 评论 -
2030-汉字统计(java)
思路:这是一个解题并不繁杂的题目,但是判断汉字的方法比较新颖。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); int count=0; String[] str=new String[n]; a.nextLine(); .原创 2021-02-24 13:20:58 · 89 阅读 · 0 评论 -
2028-Lowest Common Multiple Plus(java)
思路:求n个数的最小公倍数,可简化成求两个数的最小公倍数,再用循环遍历n个即可,求最小公倍数又要用到最大公约数,公式为:a*b/最大公约数;因题目要求最后输出为32位整数,为了防止溢出,可以在程序中将公示改为:a/最大公约数*b;import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) {.原创 2021-02-23 15:36:59 · 123 阅读 · 0 评论 -
2027-统计元音(java)
思路:市容nextLine();吸收数据,逐个使用charAt来判断元音的数量并记录即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); int q=0,e=0,r=0,o=0,u=0; a.nextLine(); .原创 2021-02-23 15:33:09 · 61 阅读 · 0 评论 -
2026-首字母变大写(java)
思路:我的思路就是紧抓空格这个条件,对空格后的第一个字符进行大小写的变换。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { String str=a.nextLine(); StringBuilder string=new StringBuilder(); for(i.原创 2021-02-16 15:18:15 · 122 阅读 · 0 评论 -
2025-查找最大元素(java)
思路:引用StringBuilder对象,因为这个对象字进行更改添加有方法方便,String不能进行插入,具体过程就是,找出最大字符,再用for进行遍历对比出最大字符后,添加更改进入StringBuilder中,输出即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { S.原创 2021-02-16 14:49:22 · 396 阅读 · 1 评论 -
2024-C语言合法标识符(java)
思路:关键就在于对字符串的每个字符的判别,if的判断过程要严谨,谨防漏掉,建议选用否定方式来判断,就是不符合标准直接判定为no跳出即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); a.nextLine(); //为了.原创 2021-02-14 16:06:01 · 233 阅读 · 2 评论 -
2023-求平均成绩(java)
思路:这道题我用的是二维数组,将每位同学的成绩输入到二维数组中,再进行数组间的行相加与列相加,求平均数进行比较,思路很简单,但是我写的不并不是很简练,格式也多次错误。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); int m=a.n.原创 2021-02-11 17:13:53 · 126 阅读 · 1 评论 -
2020-绝对值排序(java)
思路:这道题思路比较清晰,输入数据,使用math方法比较大小值,遍历输出即可import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); if(n==0) break; int[] arr=new int[n]; for(int i.原创 2021-02-08 15:17:52 · 480 阅读 · 0 评论 -
2019-数列有序(java)
思路:这道题最终是要在n个数的基础上再加一个m,所以直接建立一个N+1长度大小的数组,可以将m直接放在首位,剩下的n个位置,填放已知数列,再使用数组排序方法即可。import java.util.*;public class Main {public static void main(String[] args) { Scanner a=new Scanner(System.in); while(a.hasNext()) { int n=a.nextInt(); int m=a.nex.原创 2021-02-08 15:14:14 · 273 阅读 · 1 评论 -
2018-母牛的故事(java)
思路:这是一道类似于斐波那契数列的找规律题,解决的方法可采用递归,fn=f(n-1)+f(n-3)。规律的解释:f(n-1)求的是去年牛的总数,f(n-3)求的是今年生下新小牛的数量。( 因为小母牛第四年才可以具有生殖能力,所以要往前推三年,才可求出今年可以生出新小牛的数量。)import java.util.*;public class Main { public static void main(String[] args) { Scanner a=new Scanner(Sys.原创 2021-02-08 15:08:14 · 304 阅读 · 1 评论