# 1764. 通过连接另一个数组的子数组得到一个数组

class Solution {
public:
bool canChoose(vector<vector<int>>& groups, vector<int>& nums) {
int p = 0, q= 0;
for (int i = 0; i < nums.size(); i++) {
if (nums[i] == groups[p][q]) {
int flag = 1;
int j = 1;
for (; j < groups[p].size(); j++) {
if (i + j >= nums.size()) {
flag = 0;
break;
}
if (nums[i + j] != groups[p][q + j]) {
flag = 0;
break;
}
}
if (flag) {
i += j - 1;
p++;
}
}
if (p == groups.size()) return true;
}
return false;
}
};

复杂度分析

  • 时间复杂度:$O (n)$
  • 空间复杂度:$O (1)$