跳到主要内容

1640.能否连接形成数组

链接:1640.能否连接形成数组
难度:Easy
标签:数组、哈希表
简介:如果可以连接 pieces 中的数组形成 arr ,返回 true ;否则,返回 false 。

题解 1 - cpp

  • 编辑时间:2022-09-22
  • 执行用时:4ms
  • 内存消耗:9MB
  • 编程语言:cpp
  • 解法介绍:哈希存储。
class Solution {
public:
bool canFormArray(vector<int>& arr, vector<vector<int>>& pieces) {
unordered_map<int, int> m;
for (int i = 0; i < pieces.size(); i++) m[pieces[i][0]] = i;
for (int i = 0; i < arr.size();) {
if (!m.count(arr[i])) return false;
int idx = m[arr[i]];
for (int j = 0; j < pieces[idx].size(); j++, i++) if (pieces[idx][j] != arr[i]) return false;
}
return true;
}
};