三本的我面试微软,微软包机票酒店早餐到苏州,实在太棒了

简介,苏州微软,目前已经电话三轮,全过,过了后可以公费去苏州现场面试。

比国外 Google的面试难度要低一些,或者说,偏重点更不一样。

微软你可以只做一道面试题,思路清晰,完整,边界情况考虑清楚,代码写好就行了。

但是 Google 是需要你在 40 分钟内,完美答出两道题目,这就是区别。

另外,苏州微软是用中文的,也是容易了一些的原因——因为用英语你确实脑子转不过来。

##第一轮

没有给出题目,口头说的,我整理一下:

判断一个数组是否基本有序,其实就是可否通过一次简单的交换就满足有序。

例子:

  • 1, 2, 3, 6, 5, 12 是基本有序数组,因为可以交换 6 跟 5, 变成1, 2, 3, 5, 6, 12
  • 1, 5, 4, 3, 6 也是基本有序数组,可以交换 5 跟 3
  • 3,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:
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值