本篇教大家刷题来准备面试!
文章目录
为什么要刷题?
我们常说,算法与数据结构是CS(Computer Science)的核心,而刷题是快速掌握算法与数据结构的唯一渠道。
刷题的最大的好处是手撕算法需要你肉眼debug的能力,需要很多边界判断,日常工作需要经常考虑边界,你能否在高负荷的工作状态中还能肉眼debug呢 ,算法是作为一个门槛,对脑力的考验,在一些算法题中需要记住一些一些经典算法,部分就有点像记忆了,一些经典题目或者经典算法,记住他的套路或者说思想。
无论你是刚接触代码的小白,还是在大厂工作多年的coder,刷题都是保证技术熟练度的制胜法宝。
算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的就是一个好的刷题平台。现在算法刷题平台鱼龙混杂,非常多。如何选择一个正确的刷题平台呢?
用什么来刷题呢?
接下来给大家介绍一个我认为与大厂关联最深的平台——牛客网
如果你是新手,那你可以先巩固你所学习语言的相关基础语法,在牛客网对这一部分也有相应的板块,如下:
如果你对相应语言的基础语法已经比较自信了那你也可以刷算法题,这里牛客网对算法题的难度分类也是很棒的,有入门题,面试必刷题,面试高频题等等!如下:
同时在你面试的时候,好多公司也都是在牛客网的做题环境中来考察你的算法能力,所以平时在牛客网上面进行练习,将来在面试的时候一定可以事半功倍!
怎么样刷题?
有些同学喜欢上来就是干,上来就是终极难度的题目,觉得自己只要做出最难的,其它的就迎刃而解了。这种急于求成的思想要不得。
算法训练是一个系统工程,需要循序渐进,太过于急功近利,反而容易因做不出难题而产生挫败感,带来反效果。
记得我有一个同事就做了次类似的事情。我当时刚听说有牛客网,就想上去试试,他上去后就挑了一道困难里面还属于比较难的题目,结果想了大半天也没做出来,搞到自己特别沮丧。
你会发现这种做法效率很低,那道题目就算被做出来了,也不代表就可以解出其它的题目。
合理的做法是循序渐进。
我的建议是先刷一遍基础语法题,打好基础在进一步刷算法题,这样首先对这个语言的基础语法和常用API是绝对没有问题的,在后面刷算法题的时候也肯定会事半功倍的!
练习篇
题目:
题解:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);double d = scanner.nextDouble();System.out.println(Main.typeConversion(d));}publicstaticinttypeConversion(double d){String s =String.valueOf(d).split("\\.")[0];returnInteger.parseInt(s);}}
题目:
题解:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int a = scanner.nextInt();int b = scanner.nextInt();
scanner.close();//a和b的值互换if(a<b) a=a+b-(b=a);System.out.printf("%d %d %d %d %d",a+b,a-b,a*b,a/b,a%b);}}
题目:
题解:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);double d= scanner.nextDouble();
scanner.close();//好家伙,这也太强了,简单粗暴int i =(int)(d+0.5);System.out.println(i);}}
为了方便刷题我直接把牛客网的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!
传送门:刷题入口
刷题这件事,大家一定要认真起来,不可懈怠!
日积月累,方成大器!
版权归原作者 _ 大聪明 所有, 如有侵权,请联系我们删除。