📣 独立日限时特惠: VIP通行证立减$68
查看: 1457| 回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

[二分/排序/搜索] sorted matrix搜索的高难度版本

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
给一个有序矩阵, 就是M[i,j]<=M[i,j+1], M[i,j]<=M[i+1,j].
测试x是否存在于矩阵里.

h: <=x的数字所组成的staircase shape有多少个steps.
k: <=x的数字有多少个.
n: <=x的数字所组成的staircase shape可以放在一个nxk的矩阵里或者kxn的矩阵里.

比如这个图形里, h是5.

h,n,k都不是事先知道的.


1.
x是给定的, 可以使用的.
算法能达到O(h log k)就可以了.
O(h log(k/h))更好
O(h log(k/h^2))不期望面试时做出来.

2.
并不给x, 但是给一个函数f, 使得f(y)返回是否y<=x.
要求, 使用f最多O(log(k))次.

复杂度O(n log k)就很好, 当然O(n log(k/n))就更好了.


实际上引出一个未解问题.
能否第二个问题里, 复杂度也是O(h log(k/h^2))

评分

参与人数 2大米 +15 收起 理由
jaychsu + 5 太有才了!
14417335 + 10 很有用的信息!

查看全部评分


上一篇:針對Java面試的Java影片?
下一篇:支持存活时间的HashMap
🔗
14417335 2019-3-2 22:10:13 | 只看该作者
全局:
说几个观察:
  • 横向的查找采用小于等于查找,竖向采用大于等于查找。
  • 总体复杂度最坏应该是 h * log K.  但是期望应该是 h log (sqrt(K))。和楼主的O(h log(k/h))搭配不上。这点想不明白。
  • 第二问既然有此函数:使得f(y)返回是否y<=x,那么对其使用f最多O(log(range(matrix max - matrix min)))次,就可以求得x的值。

回复

使用道具 举报

🔗
 楼主| mgccl 2019-3-4 06:58:40 | 只看该作者
全局:
14417335 发表于 2019-3-2 22:10
说几个观察:
  • 横向的查找采用小于等于查找,竖向采用大于等于查找。
  • 总体复杂度最坏应该是 h * log ...

  • 用exponential search而不是binary search可以得到O(h log k/h)

    获得O(h log(k/h^2))需要证明下面的
    有数字0=k_1<=k_2<=... <=k_h = k.
    则sum log(k_{i+1}-k_i) 是O(h log(k/h^2))

    补充内容 (2019-3-4 07:01):
    少了个条件sum k_i = k. 还有不存在k_h=k这个条件

    评分

    参与人数 1大米 +5 收起 理由
    14417335 + 5 很有用的信息!

    查看全部评分

    回复

    使用道具 举报

    🔗
     楼主| mgccl 2019-3-4 13:25:21 | 只看该作者
    全局:
    步惊云 发表于 2019-3-4 11:01
    你写的真的很乱, 我很多地方只能靠猜. 想写题你就明明白白写的好一点, 例子举好一点.

    看来看去还是不理 ...

    题意是原来问题, 不要看后面回复.

    可能看这个问题比较容易理解题意. https://cstheory.stackexchange.c ... -in-a-sorted-matrix   (那问题里有不一样的变量名)
    回复

    使用道具 举报

    🔗
     楼主| mgccl 2019-3-4 23:52:14 | 只看该作者
    全局:
    有另一个paper达到同样的时间. http://mediatum.ub.tum.de/doc/1094388/TUM-I0821.pdf
    我个人觉得这个人的算法比较难懂.

    https://arxiv.org/pdf/1711.00599.pdf
    这里面的Lemma 2.1 是为了解决另一个问题的, 但算法是一样的.
    大概给的是如果h=w, 如何用log w query找到x.
    h和w差距很大弄到h log (w/h) 就要用其他方法, 可以看Lemma 2.1前面cite的那些文章. 方法区别不大.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册账号
    隐私提醒:
    • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
    • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
    • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
    • ☑ 查阅全站 🔗各种匿名方法

    本版积分规则

    >
    快速回复 返回顶部 返回列表