刚开始学java的时候(仅仅是语言)感觉涉及到的算法知识比较少,而算法更多的是和逻辑思维关系比较大,其实我现在自己也感觉自己的算法的能力不是很强,基本上给一个题目独立建立思路来解决还是挺困难的。如果算法已经存在思路了,让我用语言来实现的话,那就简单多了。个人推荐你去Google一下结构之法算法之道,他的博客挺出名的,有微软面试一百题,有程序员编程艺术等作品,你还可以去关注一下他现在正在做的一个项目,一个编程比赛,你搜一下庞果网就出来了,当然我不是做广告啊。我觉得算法题应该是锻炼一个人的逻辑思维,如果有些题目实在太难解决不出来那也说明不了什么。多多练习就好了,学java的话还是感觉设计模式挺重要的吧,以上个人观点,仅供参考。

解决方案 »

  1.   

    比如一些题目,具有一定规律的数组寻找符合指定要求的item,直接的反应就是二分法,至于具体的分割条件和过滤条件,终止条件就具体问题具体分析,但基本的思路有了就容易多了。还有像n个item中选m个item,或n个item组合等问题,直接的反应就是排列组合问题。类似这样的还比较好解决,困难的是面向特定领域的算法,比如图形学上一些场景加速的算法,如果没接触过就基本没啥思路了。
      

  2.   

    http://www.cnblogs.com/huangxincheng/category/340146.html
      

  3.   

    Introduction to Algorithms里的基础都学一遍吧