赞
踩
简介,苏州微软,目前已经电话三轮,全过,过了后可以公费去苏州现场面试。
比国外 Google的面试难度要低一些,或者说,偏重点更不一样。
微软你可以只做一道面试题,思路清晰,完整,边界情况考虑清楚,代码写好就行了。
但是 Google 是需要你在 40 分钟内,完美答出两道题目,这就是区别。
另外,苏州微软是用中文的,也是容易了一些的原因——因为用英语你确实脑子转不过来。
##第一轮
没有给出题目,口头说的,我整理一下:
判断一个数组是否基本有序,其实就是可否通过一次简单的交换就满足有序。
例子:
1, 2, 3, 6, 5, 12
是基本有序数组,因为可以交换 6 跟 5, 变成1, 2, 3, 5, 6, 12
1, 5, 4, 3, 6
也是基本有序数组,可以交换 5 跟 33,2, 1, 0
就不是基本有序数组了,因为你交换一次数组并不能使此数组有序。思路不难,仔细分析一下,有序的数组数字关系是这样: a < b < c < d < e
,而基本有序则是:a < b > c > d <e
,这样可能不好看,简单来说就是那两个数字在是不满足x < y
的关系的。
可以遍历此数组,只要有多于一个数字是比两边都要大,且有一个数字是比左右两边要小的,那就是基本有序数组,其余的都不是。当然,你也要考虑本来这个数组就是有序的情况。
在面试时写的代码与交流草稿如下,这份代码是不能当答案看的,只是让朋友你们看看怎么样的代码可以过面试。建议你们自己写写可以编译过的代码。
int array 1, 2, 3, 6, 5, 12 true i min: 3, miax: 5 1, 5, 4, 3, 6 sub array -> reverse -> true 1, 2, 3, 6, _5, 1, 5, 4, 3, 6 max: 5 min: 3 1 < min < max < least i, 1, 5, 4, 2, 8, 19, 7, 12 5, 4, 9 min: 2 max: 5 sub array -> sorted? 7 3 i:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。