讨论:一个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是矩阵的元素个数。
有更优的方法吗?
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是矩阵的元素个数。
有更优的方法吗?