Redian新闻
>
找杨氏矩阵的第k大的数?
avatar
找杨氏矩阵的第k大的数?# JobHunting - 待字闺中
r*e
1
问个问题啊。如何在杨氏矩阵中,高效的找到第k大的数或者第k小的数,没有没什么简
单的方法? 谢谢
avatar
q*m
2
找k-1次predecessor? O(k)复杂度

【在 r*****e 的大作中提到】
: 问个问题啊。如何在杨氏矩阵中,高效的找到第k大的数或者第k小的数,没有没什么简
: 单的方法? 谢谢

avatar
g*y
3
用一个min-heap。
刚开始min-heap里面是左上角的值。
每次动min-heap里面pop出一个最小值来,把这个最小值的右边和下边的值push到min-
heap里面去。
pop出来的第k个值就是最小值。

【在 r*****e 的大作中提到】
: 问个问题啊。如何在杨氏矩阵中,高效的找到第k大的数或者第k小的数,没有没什么简
: 单的方法? 谢谢

avatar
r*e
4
似乎不用min-heap? 只要保证矩阵的特性,每次只取左上角的A[0][0]。
我觉得还应改考虑到更新这个矩阵的时间,所以,O(K(M+N))

【在 g****y 的大作中提到】
: 用一个min-heap。
: 刚开始min-heap里面是左上角的值。
: 每次动min-heap里面pop出一个最小值来,把这个最小值的右边和下边的值push到min-
: heap里面去。
: pop出来的第k个值就是最小值。

avatar
g*y
5
那还不如用min-heap呢。O(klogk)。

【在 r*****e 的大作中提到】
: 似乎不用min-heap? 只要保证矩阵的特性,每次只取左上角的A[0][0]。
: 我觉得还应改考虑到更新这个矩阵的时间,所以,O(K(M+N))

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。