Leetcode 444 Solution
This article provides solution to leetcode question 444 (sequence-reconstruction)
Access this page by simply typing in "lcs 444" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/sequence-reconstruction
Solution
class Solution {
public:
bool sequenceReconstruction(vector<int>& org, vector<vector<int>>& seqs) {
int n = org.size();
vector<int> pos(n + 1);
vector<bool> flags(n + 1);
int flags_cnt = n - 1;
for (int i = 0; i < org.size(); i++)
pos[org[i]] = i;
bool checked = false;
for (auto seq : seqs)
{
for (int i = 0; i < seq.size(); i++)
{
checked = true;
if (0 >= seq[i] || seq[i] > n)
return false;
if (i == 0)
continue;
int from = seq[i - 1];
int to = seq[i];
if (pos[from] >= pos[to])
return false;
if (pos[from] + 1 == pos[to] && flags[from] == 0)
{
flags[from] = 1;
flags_cnt--;
}
}
}
return flags_cnt == 0 && checked;
}
};