Sajib_Ahmed

LIS

Apr 7th, 2021 (edited)
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5.  
  6. void printLIS(vector<int>& arr)
  7. {
  8.     int i=0;
  9.     cout <<"Length of LIS = ";
  10.     for (int x : arr)
  11.     {
  12.         i++;
  13.     }
  14.     cout<<i;
  15.     cout <<"\nThe LIS is\n";
  16.     for (int x : arr)
  17.     {
  18.         i++;
  19.         cout << x << " ";
  20.     }
  21.  
  22.     cout << endl;
  23. }
  24.  
  25.  
  26. void constructPrintLIS(int arr[], int n)
  27. {
  28.  
  29.     vector<vector<int> > L(n);
  30.  
  31.  
  32.     L[0].push_back(arr[0]);
  33.  
  34.  
  35.     for (int i = 1; i < n; i++)
  36.     {
  37.  
  38.         for (int j = 0; j < i; j++)
  39.         {
  40.  
  41.             if ((arr[i] > arr[j]) &&
  42.                     (L[i].size() < L[j].size() + 1))
  43.                 L[i] = L[j];
  44.         }
  45.  
  46.  
  47.         L[i].push_back(arr[i]);
  48.     }
  49.  
  50.  
  51.     vector<int> max = L[0];
  52.  
  53.  
  54.     for (vector<int> x : L)
  55.         if (x.size() > max.size())
  56.             max = x;
  57.  
  58.  
  59.     printLIS(max);
  60. }
  61.  
  62.  
  63. int main()
  64. {
  65.     int siz,i;
  66.     cout<<"Enter Arry size\n";
  67.     cin>>siz;
  68.     int arr[siz];
  69.     cout<<"Enter Arry \n";
  70.     for(i=0;i<siz;i++)
  71.     {
  72.         cin>>arr[i];
  73.     }
  74.  
  75.     int n = sizeof(arr) / sizeof(arr[0]);
  76.  
  77.  
  78.     constructPrintLIS(arr, n);
  79.  
  80.     return 0;
  81. }
  82.  
Add Comment
Please, Sign In to add comment