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

1 Answer

0 votes
#include <stdio.h>
 
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(void) {
    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++) { 
        printf("%d, ", 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
...