day18 (912. 排序數組)

  • 題目描述:給你一個整數數組 nums,請你將該數組升序排列。

  • 示例 1:

    輸入:nums = [5,2,3,1]
    輸出:[1,2,3,5]

  • 示例 2:

    輸入:nums = [5,1,1,2,0,0]
    輸出:[0,0,1,1,2,5]

  • 提示:

    1 <= nums.length <= 50000
    -50000 <= nums[i] <= 50000

  • 我的題解:

class Solution {
    public int[] sortArray(int[] nums) {
        // Arrays.sort(nums);
        quickSort(nums,0,nums.length - 1);
        return nums;
    }
    // 複習一下快排。。。
    private void quickSort(int[] nums, int low, int high) {
        if(low >= high) {
            return;
        }
        int i = low;
        int j = high;
        int tmp = nums[low];
        while(i<j) {
            while(i < j && nums[j] >= tmp) {
                j--;
            }
            while(i < j && nums[i] <= tmp) {
                i++;
            }
            if(i < j) {
                int t = nums[i];
                nums[i] = nums[j];
                nums[j] = t;
            }
        }
        nums[low] = nums[i];
        nums[i] = tmp;
        quickSort(nums,low,i-1);
        quickSort(nums,i+1,high);
    }
}

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/sort-an-array
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章