// Есть массив целых чисел vector < int > произвольнойго размера // Нужно получить список отсутствующих в массиве чисел // от нуля до самого большого числа в массиве. // Например, массив содержит : 2 , 5 , 6 , 10 // Алгоритм должен вернуть числа отсутствующие в этой последовательности // т.е. : 0 , 1 , 3 , 4 , 7 , 8 , 9 #include <vector> void Not_In_List_Numbers ( vector<int>& Numbers, vector<int>& Output ) { size_t Current_Number = 0; size_t Last_Number = 0; size_t TempVal = 0; size_t Difference = 0; sort( Numbers.begin(), Numbers.end()); size_t Counter = Numbers.size(); for ( size_t i = 0; i < Counter; ++i ) { TempVal = Numbers [i]; if ( TempVal > Last_Number ) { Current_Number = TempVal - 1; Difference = Current_Number - Last_Number; while ( Difference > 0 ) { Output.push_back ( ++Last_Number ); --Difference; } Current_Number = Last_Number = TempVal; } } } int main(int argc, char* argv[]) { vector<int> Numbers { 6, 3, 15, 7, 13, 6, 11, 4, 2, 9 }; vector<int> Output; Not_In_List_Numbers ( Numbers, Output ); cout << "Numbers : \n"; for ( auto x: Output ) cout << x << " , "; return 0; }