Redian新闻
>
讨论:一个Google面经算法题
avatar
讨论:一个Google面经算法题# JobHunting - 待字闺中
d*y
1
input是一个2D的整数矩阵,output是一个满足下面要求的矩阵:
1. 矩阵每一行从左到右递增(含相等)、每一列从上到下依次递增(含相等)
2. 矩阵每一行不能出现相同的数字
举例:
如果input是
1 3 4
2 3 5
那么output可以是:
1 3 4
2 3 5
或者
1 2 3
3 4 5
或者
1 3 4
2 3 5
等任何一种
一种行得通的做法是先将所有元素加到Heap里面,然后一列一列地填,每一列都按从上
往下的顺序填。但这个复杂度是N * lg N,这里N是矩阵的元素个数。
有更优的方法吗?
avatar
b*6
2
用radix sort怎么样O(n),读出来O(n), 排序O(n),写回去O(n)
其实n log n已经够了吧,如果这个矩阵只有一行,就是数组排序,n log n就不错了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。