将 k 个有序数组合并为一个大的有序数组。
样例
样例 1:
输入:
[
[1, 3, 5, 7],
[2, 4, 6],
[0, 8, 9, 10, 11]
]
输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
样例 2:
输入:
[
[1,2,3],
[1,2]
]
输出: [1,1,2,2,3]
挑战
在 O(N log k) 的时间复杂度内完成:
- N 是所有数组包含的整数总数量。
- k 是数组的个数。
class Solution {
public:
/**
* @param arrays: k sorted integer arrays
* @return: a sorted array
*/
vector<int> mergekSortedArrays(vector<vector<int>> &arrays) {
// write your code here
vector<int> ret;
for(int i = 0; i < arrays.size(); i++)
{
for(int j = 0; j < arrays[i].size(); j++)
{
ret.push_back(arrays[i][j]);
}
}
sort(ret.begin(), ret.end());
return ret;
}
};