微信

使用微信服务,更方便

职友集>Java面试题 > Java经典算法题目面试题经常出现的

Java经典算法题目面试题经常出现的

2015-10-03 06:30:02 阅读( 2 )

2660人 收藏本页

标签:Java面试题

1、Fibonacci-费式数列问题说明: Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后小兔子也开始生产。起初只有一只兔子,一个月后就有两只兔子,两个月后有三只兔子,三个月后有五只兔子(小兔子投入生产)……

2、巴斯卡三角形(Pascal) 问题说明: 巴斯卡(Pascal)三角形基本上就是在解nCr ,因为三角形上的每一个数字各对应一个nCr ,其中n为row,而r为colnmu

3、三色旗(ThreeColorFlags) 问题说明: 三色旗的问题最早由E.W.Dijkstra所提出,塔所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来说明。假设有一条绳子,上面有红,白,蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列蓝,白,红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两个旗子。

4、老鼠走迷宫(Mouse) 问题说明: 老鼠走迷宫是循环求解的基本类型,我们在二维数组中用2来表示迷宫的墙壁,使用1来表示老鼠的行走路径,并用程序求出从入口到出口的距离。

5、骑士走棋盘(Knight tour) 问题说明: 骑士游戏,在十八世纪倍受数学家与拼图迷的注意,骑士的走法为西洋棋的走发,骑士可以由任何一个位置出发,它要如何走完所有的位置。

6、八个皇后(Queen) 问题说明: 西洋棋中的皇后可以直线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上?

7、八枚银币(Coins) 问题说明: 现在有八枚银币abcdefg,已知其中一枚是假币,其重量不同于真币,但不知道是轻还是重,如何用天平以最小的比较次数决定出那个是假币,并得知假币是比真币轻还是重。

8、生命游戏(Life game) 问题说明:生命游戏,为1970年英国数学家J.H.Conway所提出,某一细胞的邻居包括上,下,左,右,左上,左下,右上与右下相邻的细胞,游戏规则如下: 1,孤单死亡:如果细胞的邻居小于一个,则该细胞在下一个状态死亡。 2,拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一个状态死亡。 3,稳定:如果细胞的邻居为两个或三个,则该细胞在下一个状态稳定。 4,复活:如果某位置原无细胞存活,而该位置的邻居为三个,则该位置将复活一个细胞。

9、字符串核对(String Match) 问题说明: 现在的一些高级程序语言对于字符串的处理支持越来越大,不过字符串搜寻本身仍是值得探讨的课题,在这里以Boyer Moore法来说明如何进行字符串说明,这个方法速度快且容易理解。

10、河内塔(Hanoi2Colors) 问题说明: 河內之塔(Towers of Hanoi)是法国人M.Claus(Lucas)於1883年从泰国带至法国的,河內为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及這个故事,据说创世紀时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),並命令僧侣将所有的金盘从第一根石棒移至第三根石棒,且搬运过程中遵守大盘子在小盘子之下的原则,若每日仅搬一个盘子,则当盘子全数搬运完毕之时,此塔将损毁,而也就是世界末日來临之时。

11、背包(Kanpsack Problem) 问题说明: 假设一个背包的负重最大可达8公斤,而希望在背包内放置负重范围你价值最高的物品。

来自IT公司面试手册

下一篇:Java基本功面试题

上一篇:Java 程序员面试测试题

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题