zoukankan      html  css  js  c++  java
  • hulu

    一、

    一开始因为没收到含有共享文档链接的邮件,所以简单自我介绍,聊了几句项目。问了:

    1. 玩嗨如果数据库结构变化要怎么办

    2. 哈佛项目是否为官方渠道

    一直没收到邮件,面试官读网址给我,进到共享文档界面。

    共享文档编程:

    1. 单链表的快速排序

    我先求了长度,他说不用求长度。

    第一个元素为枢轴,然后把当前链表分成两个链表,一个全部是小于等于枢轴的元素,另一个全部是大于等于枢轴的元素,然后递归快排这两个新链表,最后把它们连起来。

    2. 给一个无序数组,元素不重复,连续数字的最大长度。例:[4,5,1,3,8,9]的最长连续数字为[3,4,5],所以最大长度为3。

    我先说的排序,然后遍历。时间复杂度O(nlogn)。

    面试官说时间复杂度低一些的呢。

    提示可以用额外的存储空间来换时间。

    最后说出来用哈希表存储每个元素是否出现,然后从每个元素开始找它加1的元素是否存在,若存在则长度加1,若不存在则重新计数。

    具体实现:首先遍历链表用map记录元素是否存在(map.find(element) != map.end()即元素存在),然后再遍历链表,对每一个元素,找比它大和比它小的连续元素,从map中删除所有找过的元素,记录最大长度。

    时间复杂度O(n)。

    3. 给一个n,求从0到n所有数字的二进制表示中1的个数。

    n为偶数时,n的二进制表示中1的个数 = (n/2)的二进制表示中1的个数。

    n为奇数时,n的二进制表示中1的个数 = (n-1)的二进制表示中1的个数 + 1。

    设f(n)为 0到n所有数字的二进制表示中1的个数。

    n为奇数时,0到n的所有偶数的二进制表示中1的个数为 f(n/2),0到n的所有奇数的二进制表示中1的个数为 f(n/2)+(n+1)/2。

    n为偶数时,0到n的所有偶数的二进制表示中1的个数为 f(n/2),0到n的所有奇数的二进制表示中1的个数为 f((n-1)/2)+((n-1)+1)/2。

    综上,

    f(n) = f(n/2) * 2 + (n+1) / 2, n为奇数

              f(n/2) + f((n-1) / 2) + n/2, n为偶数

    二、

    五道算法题:

    1. 矩形覆盖层数:给n个矩形的长和宽,长宽都大于等于的可以覆盖,问最多能覆盖的层数。

    按矩形的宽和长从小到大排序,然后动态规划。

    从第一个开始,记录到它为止最大覆盖层数。

    对每个矩形,遍历它前面的所有矩形,若能覆盖,则更新该矩形的覆盖数的最大值。

    2. 求排列的下一个

    从最右开始找到n[i]<n[i+1]的第一对相邻数字。若没有则说明没有下一个排列。

    将n[i]与最右数字(即i到最右的最小数字)交换,再将i+1到最右排序。


    3. n个人比赛 0 VS 1, 2 VS 3, ..., (n-2) VS (n-1), 问i和j什么时候相遇(假设i和j每次都能胜出)。

    假设都是编号较小者胜。

    第一局:0 VS 1, 2 VS 3, ..., (n-2) VS (n-1)

    第二局:0 VS 2, 4 VS 6, ..., (n-2) VS (n-1)

    当 i / 2^k == j / 2^k 时,i和j相遇。


    4. 求n位字符串有多少种形式


    5. 求完全二叉树的最后一个节点

    递归后序遍历,每次返回该子树的深度和其中最右节点指针。

    对某个节点,若其左子树深度大于右子树,则该子树深度为左子树深度加一,返回其左子树最右节点指针;否则,该子树深度为右子树深度加一,返回其右子树最右节点指针。

  • 相关阅读:
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    PHP extract() 函数
    PHP end() 函数
    PHP each() 函数
    PHP current() 函数
  • 原文地址:https://www.cnblogs.com/argenbarbie/p/5349248.html
Copyright © 2011-2022 走看看