【发布时间】:2020-07-16 10:22:04
【问题描述】:
我需要帮助获取 2D 矢量的第一层索引。每个元素都是唯一的,因此元素没有重复。这就是我的意思。
我有一个向量定义为:
vector<vector<int>> vec { {0,1} ,
{2} ,
{3,4},
{5,6} }
然后,我想在“第一”层获取任何数字所在位置的索引。
我的意思是,如果我说
index of 4,它应该返回2。
如果我说index of 6,它应该返回3。
提前谢谢你!
【问题讨论】:
-
如果我们可以分配额外的空间,我们可以使用
unordered_map<int, int>来存储它们所属的向量的数字和索引。如果没有,那么我们将不得不遍历整个 2D 数组,除非您没有提供更多的 2D 数组结构。 -
@Someprogrammerdude 看起来他们的意思是“找到 4 并在子向量中返回它的索引”
-
如果你的数字从0开始是连续的,那么你最好创建一个
vector<int>,其中第一个元素对应于0层,第二个元素对应于1层,依此类推。 O(N) 空间,O(1) 访问和更改。