首页 > 编程语言 > 详细

算法涉及的常规方法总结

时间:2021-03-12 18:45:58      阅读:22      评论:0      收藏:0      [点我收藏+]

感慨下:

最近和做算法的同学(java web中途转的)聊天,闻知他现在仍然在持续刷题保持状态,甚是敬佩,算法是练脑子的好方法,

就像以前喜欢做数学题一样,纯粹。数学讲基础和逻辑,一层层递进的理论。不理解整数,分数,小数,计算不会好;不熟

悉一元一次方程,因式分解,那基本上高阶和多元方程,指数,对数方程也不要想;三角函数推理证明过程不理解,想记忆公

式,吃力;我没有专门刷过算法题目,所以对自学的数据结构,算法思想,不像以前数学那样可以做到看到题目就知道思路,只用

写出规范的解题步骤。

所以准备像我的那位一样,从入门,初级开始做起,一点点积累,以下是我的一些总结,仅作记录小本本

一、输入输出

Scanner in = new Scanner(System.in)

nextInt(),nextLong(),nextFloat(),nextDouble():直至读取到空格或回车之后结束,读取到的数值;对应判断使用hasNextInt()

牛客上的对nextXXX的解释有点复杂,这里有个我认为比较简单的方法:

假设"有效字符"指我们常用的StringUtils.isEmpty()为true的字符,那么空格,大片空白,换行符都是非有效字符

hasNext(),next():就是一直读取,遇到"非有效字符"前,读到的String值,

hasNextLine(),nextLine():一直读,直到读取到非有效字符中换行符这种情形(说明:遇到空格还是继续读完)

一组数据直接next,确定多少组数据直接for,不确定用while

二、数学计算

Math. pow(r,3)求立方

Math. sqrt(x),求平方根

求余

m%100:求数字的各个位数用除以10的倍数取余数

1<<n:计算2的n次方

Math.ceil():向上取整

Math.floor():向下取整

Math.round():四舍五入

String. format("%.2f",f):保留小数位数

进制数互转:

其他进制 ------> 十进制:Integer.parseInt(String s, int radix)
10 ------> 其他:Integer.toString(int i,int radix)

10 ------> 16:Integer.toHexString(int i)
10------> 8:Integer.toOctalString(int i)
10------> 2:Integer.toBinaryString(int i)

判断偶数:(n&1)==0   true表示偶数

求三个数字中的最大值:Math.max(n3, Math.max(n1, n2))

三、字符串操作

String.split()

String.substring

String.valueOf():int值或char[]

String.toCharArray()

字符和ASCII码互转:(int)char,(char)int

字符串反转:StringBuilder. reverse

是否包含某个字符(字符串):String.contains(Charsequence c)

字符是否是数字:Character.isDigit(char or int)

字符是否是字母:Character.isLetter(char or int)

是否是小写字母:Character.isLowerCase(char ch)

四、集合操作

对List<Integer> 排序:

从小到大:Collections.sort(list) 

从大到小: Collections.reverse(list)

从小到大:Arrays.sort(int[] a)

五、循环

for(int i=0;i<n;i++){}

for(int i=1;i<=n;i++){}

for(int i=arr.length-1;i>=0;i--){}

 

 

 

 
 

算法涉及的常规方法总结

原文:https://www.cnblogs.com/yb38156/p/14517262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!