Lang:Java
Edit12345678910111213141516171819202122232425262728293031import java.util.Scanner;public class Main{private int[] aux;public int inverse(int[] num, int N){if(num == null || N <= 0){return 0;}aux = new int[N];return inverse(num, 0, N - 1);}public int inverse(int[] num, int lo, int hi) {if (lo == hi) {return 0;}int mid = (hi - lo) / 2 + lo;int left = inverse(num, lo, mid);int right = inverse(num, mid + 1, hi);for (int i = lo; i <= hi; i++) {aux[i] = num[i];}int p = mid, q = hi, index = hi;int cnt = 0;for (; index >= lo; index--) {if (p < lo) {num[index] = aux[q--];