Как я могу запустить этот код на Leetcode? Ошибка «ошибка: несовместимые типы: void не может быть преобразован в int []» - PullRequest
0 голосов
/ 06 мая 2019

Я делаю 912. Сортируй массив, используя быструю сортировку, и я использую arr [high] в качестве своей оси.Так как мне запустить этот код?

Ошибка:

Ошибка компиляции, строка 7: ошибка: несовместимые типы: void не может быть преобразовано в int [] return sortHelper (nums,0, длина длины - 1);

class Solution {
public int[] sortArray(int[] nums) {
    if(nums == null || nums.length == 0) {
        return null;
    }

    return sortHelper(nums, 0, nums.length - 1);
}

public void sortHelper(int arr[], int low, int high) {
    if(low < high) {
        int pi = partition(arr, low, high);
        sortHelper(arr, low, pi - 1);
        sortHelper(arr, pi + 1, high);
    }
}

public int partition(int arr[], int low, int high) {
    int pivot = arr[high];
    int i = low - 1;
    for(int j = low; j < high; j++) {
        if(arr[j] <= pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    int temp = arr[i + 1];
    arr[i + 1] = arr[high];
    arr[high] = temp;
    return i + 1;
}
}

1 Ответ

0 голосов
/ 07 мая 2019

Поскольку sortHelper является пустым (без возвращаемого значения), измените эту строку:

    return sortHelper(nums, 0, nums.length - 1);

до:

    sortHelper(nums, 0, nums.length - 1);
...