欢迎访问邯郸翱翔软件学院!

邯郸翱翔学校地址:河北省邯郸市邯郸学院北路滏西大街交口西北角  咨询热线:15333301535
热门文章
面试技巧您当前所在位置:首页 > 就业中心 > 面试技巧

程序员面试前需要了解哪些算法题?

点击次数:2139次

想要成为合格的Java程序员或工程师需要具备的专业技能有很多,通过对一些面试者面试时回答的一些算法题,本文做了整理,大家可以了解一下,也好针对算法题做一些准备。

1、举例法

通过举例子发现其中的一般规则。

例子:

圆内接三角形是锐角三角形的概率是多少?这是搜狗的一个面试题,可以在圆上随意画三个点连接成三角形就可以知道答案了。

2、模式匹配法

例子:

一个有序数组的元素经过循环移动,元素的顺序变成"3 4 5 6 1 2"。怎样找到数组中最小的那个元素,假设数组中的元素各不相同。

这个题目和折半查找看起来是那么相似,因此可以借鉴折半查找的算法,最小元素显然出现在"mid > right"的转折点。

3、简化推广法

说明:

简化问题规模和数据类型,然后再发现通用的解法。

4、简单构造法

例子:

找出"abcde"的所有可能的排列组合。先考虑只有"a"的情况,再考虑"ab"的情况,以此类推。最终你可能会得到一个递归公式。这种方法往往会演变成递归法。

5、数据结构头脑风暴法

例子:

随机生成一些数字,并找出其中位数。这种问题可以在头脑中将你了解的数据结构过一遍,看看哪种是最合适的数据结构。

上面的题目可以建立两个堆,一个大根堆和一个小根堆,较小的元素放在大根堆,较大的元素放在小根堆,如果两个堆不平衡,可以从其中一个堆取出元素放入另一个堆即可。最后中位数应该是两个堆的根之一。

Copyright (c) 2006-2020 邯郸翱翔