How to use to make sorted array elements unique with minimum increments in C++

1 Answer

0 votes
#include <iostream>

void make_unique(int arr[], int size) {
    int previous = arr[0];
 
    for (int i = 1; i < size; i++) {
        if (arr[i] <= previous){
            arr[i] = previous;
            arr[i]++;
        }
        previous = arr[i];
    }
}

int main() {
    int arr[] = { 1, 1, 2, 2, 3, 3, 7, 8, 8, 8, 12, 15, 33, 33, 33 };
          
    int size = sizeof(arr)/sizeof(arr[0]);
    
    make_unique(arr, size);
    
    for (int i = 0; i < size; i++) { 
        std::cout << arr[i] << ", ";
    }
}


  
  
  
/*
run:
  
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 33, 34, 35, 
  
*/

 



answered Dec 11, 2021 by avibootz
edited Dec 11, 2021 by avibootz
...