博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
12/14/2018 Airbnb的面试反思
阅读量:5344 次
发布时间:2019-06-15

本文共 1501 字,大约阅读时间需要 5 分钟。

1. 第一题 用了quick select算法

Quickselect is a selection algorithm to find the k-th smallest element in an unordered list. It is related to the quick sort sorting algorithm.

The algorithm is similar to QuickSort. The difference is, instead of recurring for both sides (after finding pivot), it recurs only for the part that contains the k-th smallest element. The logic is simple, if index of partitioned element is more than k, then we recur for left part. If index is same as k, we have foudn the k-th smallest element and we return. If index is less than k, then we recur for right part. This reduces the expected complexity from O(n logn) to O(n), with a worst case of O(n^2).

假代码:

function quickSelect(list, left, right, k)

  if left = right

    return list[left]

  select a pivot index between left and right

  pivotIndex = partition(list, left, right, pivotIndex)

  if k = pivotIndex

    return list[k]

  else if k < pivotIndex

    right = pivotIndex - 1

  else

    left = pivotIndex + 1

 

/* 余下的task:

  1. 比较quick sort和quick select sort。相同点和不同点。

  2. 写面试第一题的解法。

*/

 

2. 第二题 倒水 leetcode改版题

1. 先给一个array of land,要求把这个land打印出来。通过找最高的land,给每个格子计算space,再打印,来完成。

2. leetcode原题,倒水,给左边优先权。改动:左右两边都是深渊。所以要在最后部分确认。会达到最后部分是因为不能往下流了,只能流到深渊里去,或者停留在原地。所以这个时候要确认两边是不是有一边是平原。只要任意一边是平原,就直接让水流走。

3. 还有一个不一样,就是因为要求把水打印出来,就要用另外一个array来记录在每个index上水的高度。然后再改进一下print的算法,就可以print both water and land了。

4. 写代码用多个index的时候,一定要想清楚,应该用哪个index。

5. 边界条件,比如array index out of bound。 

 

转载于:https://www.cnblogs.com/yxcindy/p/10123864.html

你可能感兴趣的文章
面试内容,值得一看
查看>>
UILabel
查看>>
ITerm2下使用ssh访问Linux
查看>>
【热门技术】三种SEO方式
查看>>
[Hades_技术]哈迪斯初级技术应用
查看>>
Java复习-正则表达式
查看>>
Spring.net +NHibernate ?先搞定Common.Logging
查看>>
vue中计算属性,方法,侦听器
查看>>
javaweb应用程序概述
查看>>
Apache模块开发/用C语言扩展apache
查看>>
spring通过工厂模式解决页面耦合问题
查看>>
Lucene最重要的功能是对一段话的分析
查看>>
一般服务器端口号的反斜杠表示访问webapp下的资源
查看>>
idea git
查看>>
WPF学习(11)2D绘图
查看>>
【20181025】win10下Python安装osmnx包
查看>>
转,SqlServer 基础之(触发器)
查看>>
JS及JQ实现网页侧边导航定位
查看>>
php用比较运算符把数字作为字符串比较时
查看>>
继《一次体验很不爽的面试经历》后深入反思
查看>>