其他分享
首页 > 其他分享> > leetcode 剑指offerII 115 重建序列

leetcode 剑指offerII 115 重建序列

作者:互联网

思路:

拓扑排序。

实现:

 1 class Solution {
 2 public:
 3     bool sequenceReconstruction(vector<int>& a, vector<vector<int>>& s) {
 4         int n=a.size(),m=s.size();
 5         vector<int>in(n+1,0);
 6         vector<vector<int>>g(n+1,vector<int>());
 7         for(int i=0;i<m;i++){
 8             for(int j=1;j<s[i].size();j++){
 9                 int x=s[i][j-1],y=s[i][j];
10                 in[y]++;
11                 g[x].push_back(y);
12             }
13         }
14         queue<int>q;
15         for(int i=1;i<=n;i++){
16             if(in[i]==0){
17                 q.push(i);
18             }
19         }
20         while(!q.empty()){
21             if(q.size()>1){
22                 return false;
23             }
24             int tmp=q.front();q.pop();
25             for(int i=0;i<g[tmp].size();i++){
26                 int to=g[tmp][i];
27                 in[to]--;
28                 if(in[to]==0){
29                     q.push(to);
30                 }
31             }
32         }
33         return true;
34 
35     }
36 };

标签:offerII,vectorin,int,pop,115,iq,vector,leetcode,size
来源: https://www.cnblogs.com/wangyiming/p/16511230.html