前言:算法是计算机中非常重要的一部分,也是比较难的一部分,同样一个算法题会有很多不同的解法,有的解法很冗余,有的解法很简洁同时效率也很高,当然有些算法也是非常难理解的,不管一个多难的东西,只要肯花时间和勤练习都是一定可以掌握的,即使我们没有很高的天赋,但是通过努力也一定可以站在巨人的肩膀之上。
0、java的运行机制
java程序“一次编译,到处运行”,是指它的.class文件可以到处运行
1、鸡兔同笼问题
这是一道非常基础的算法题,但是需要注意的是break的使用,当ji的数量到达23的时候,我们就已经得出我们需要的结果了,但是此时for循环并没有停止,这就造成了不必要的资源浪费,拿出这道简单的算法题就想提醒一下大家,优化就是这样需要我们从平时的学习和开发中慢慢的一点一滴的去积累。
2、递归解决倒序输出问题
(递归是程序设计的精髓,掌握了他可以将一个大问题分解成小问题,继而求解。所以递归算法非常重要。)
题目:倒序输出诗句“床前明月光,凝视地上霜”
从这三种解法可以看出虽然效果相同,但是第三种解法明显简洁很多,有一种装笔的感觉,哈哈,总结一下递归:1、自己调用自己 2、直到某一条件结束(递归出口)。递归在算法中算比较难的部分了,也是java面试基础中,容易遇到的算法题,所以特别拿出来总结一下。下面提供了自己搜集的一些算法题及答案,上传在七牛云。
材料补充
50道java算法题目:http://t.cn/RHv1Uyf
50道java算法题目及答案:http://t.cn/RHv1VT2