如何在C++中扁平化向量或2D向量
给定一个向量的向量(2D向量),任务是扁平化这个2D向量。
示例:
输入: vector = [[1, 2, 3, 4], [5, 6], [7, 8]]
输出: 1 2 3 4 5 6 7 8
输入: vector = [[1, 2], [3], [4, 5, 6, 8]]
输出: 1 2 3 4 5 6 8
推荐:请先在{IDE}上尝试,再转到解决方案。
算法:
- 可以使用迭代器来扁平化2D向量。
- 在两个数组iStart和iEnd中存储每个向量的起始和结束迭代器。
- 创建一个 hasNext() 方法来检查向量是否有下一个元素。
- 如果 hasNext() 返回 true,则打印当前元素。
下面是上述方法的实现:
输出:
时间复杂度: O(N)
辅助空间: O(N)