title: Convert Strictly Increasing Array Minimum Changes
signature: func convertStrictlyIncreasingArrayMinimumChanges(arr []int, n int) int {
source_py: def convert_strictly_increasing_array_minimum_changes(arr, n):
      LIS = [0 for i in range(n)]
      len = 0
      for i in range(n):
          LIS[i] = 1
      for i in range(1, n):
          for j in range(i):
              if ((arr[i] > arr[j]) and ((i - j) <= (arr[i] - arr[j]))):
                  LIS[i] = max(LIS[i], (LIS[j] + 1))
          len = max(len, LIS[i])
      return (n - len)
source_cpp: int convert_strictly_increasing_array_minimum_changes(vector<int> arr, int n) {
    int LIS [ n ], len = 0;
    for ( int i = 0;
    i < n;
    i ++ ) LIS [ i ] = 1;
    for ( int i = 1;
    i < n;
    i ++ ) {
      for ( int j = 0;
      j < i;
      j ++ ) {
        if ( arr [ i ] > arr [ j ] && ( i - j ) <= ( arr [ i ] - arr [ j ] ) ) {
          LIS [ i ] = max ( LIS [ i ], LIS [ j ] + 1 );
        }
      }
      len = max ( len, LIS [ i ] );
    }
    return n - len;
  }