zoukankan      html  css  js  c++  java
  • 微软实习电面(一)

    这次电面是Live Meeting+电话(为什么不用Live Meeting里的语音功能?)

    1. 现在有一个无序序列,如何取得最小的n个数(无需有序输出)?

    1/ 最简单的,可以用排序,然后就问怎么排序,我回答快排,于是让我实现快排(汗,不让用STL,要写native代码),于是习惯std::sort和std::qsort的我泪奔了。

    速度写出快排函数(估计bug若干)。算过关吗?

    2/ 让我改进一下,记得《编程之美》里有个类似的问题(见2.5节),于是把快排改进了一下,搞了一个划分预处理。

    继续code. 挣扎着在原来的快排上改出来了,估计bug更多。

    对面好像没看懂我的思路(也怪我函数命名有问题),于是解释了一下划分的方法。

    3/ 继续改进,问能不能通过迭代的方法划分出刚刚好n个元素输出(因为快排的划分中左/右)?

    这个没做出来就说PASS了,下一题。

    其实用堆做才是最给力的。

    2. 现在有一个数据文件,里面是key-value(key不重复,value为变长block),共1M对,数据文件大小4G左右,如何对其按照key进行排序?

    就答了个外排序,先划分文件,然后文件内用内排序,文件间归并(外排),没让code,也没深入问。

    面完后问对方具体做什么,大概是新闻搜索中新闻聚合一类的工作。

    然后问面试表现,对方表示不能讲(是不是不该问这个)。

    最后请求他们一定给反馈(不管是accept还是reject),得到肯定答复后结束。

    教训:不仅要熟悉高抽象层次的算法(分治、动规、贪心等),还要对基础的算法/数据结构(线性表/树/堆/图/排序/查找等)有熟悉、牢固的掌握,只会调调std::sort之类是远远不够的。

  • 相关阅读:
    kali linux 2019.1 替换burpsuite pro 1.7.37
    java反序列化漏洞实战
    我是一个997程序员
    清晨小悟
    vue webpack配置Error
    USSD 杂记
    WingMoney APP逆向,实现自动话费充值
    保持空杯心态
    解决python在命令行中运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"
    【转】Mac find 去除 “Permission denied” 信息的方法
  • 原文地址:https://www.cnblogs.com/mdyang/p/2037814.html
Copyright © 2011-2022 走看看