Saya sedang mengerjakan beberapa algoritma dan saya ingin menemukan subarray yang berdekatan dari array.

Misalnya, jika array input saya seperti di bawah ini,

vector<int> nums = {1, 2, 2, 3, 1}

Saya ingin mendapatkan vektor output seperti di bawah ini,

vector<vector<int>> output;
//Output should contain {1, 2, 2, 3, 1}, {1, 2, 2, 3}, {2, 2, 3, 1}, 
//{1, 2, 2}, {2, 2, 3}, {2, 3, 1},{1, 2}, {2, 2}, 
//{2, 3}, {3, 1}, {1}, {2}, {2}, {3}, {1} 
1
Ganesh M S 1 Desember 2017, 08:33

1 menjawab

Jawaban Terbaik

Saya baru tahu algoritmanya, seperti di bawah ini,

vector<vector<int>> Solution::sliceArray(vector<int> vect)
{
  vector< vector<int> > listOfVect;
  for (size_t i = 0; i < vect.size(); i++)
  {
    for (size_t j = 0; j <= i; j++)
    {
      vector<int>  indVect(vect.size() -i );
      copy(vect.begin() + j , vect.end() - i + j , indVect.begin());
      listOfVect.push_back(indVect);
    }
  }
  return listOfVect;
}
0
Ganesh M S 15 Juni 2019, 12:42