• LeetCode 912. Sort an Array


    原题链接在这里:https://leetcode.com/problems/sort-an-array/

    题目:

    Given an array of integers nums, sort the array in ascending order.

    Example 1:

    Input: nums = [5,2,3,1]
    Output: [1,2,3,5]
    

    Example 2:

    Input: nums = [5,1,1,2,0,0]
    Output: [0,0,1,1,2,5]

    Constraints:

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

    题解:

    Use quick sort and get result.

    Time Complexity: O(nlogn).

    Space: O(logn). stack space.

    AC Java:

     1 class Solution {
     2     public List<Integer> sortArray(int[] nums) {
     3         List<Integer> res = new ArrayList<>();
     4         if(nums == null || nums.length == 0){
     5             return res;
     6         }
     7         
     8         quickSort(nums, 0, nums.length - 1);
     9         for(int num : nums){
    10             res.add(num);
    11         }
    12         
    13         return res;
    14     }
    15     
    16     private void quickSort(int [] nums, int l, int r){
    17         if(l >= r){
    18             return;
    19         }
    20         
    21         int m = partition(nums, l, r);
    22         quickSort(nums, l, m);
    23         quickSort(nums, m + 1, r);
    24     }
    25     
    26     private int partition(int [] nums, int l, int r){
    27         int pivot = nums[l];
    28         while(l < r){
    29             while(l < r && nums[r] >= pivot){
    30                 r--;
    31             }
    32             
    33             nums[l] = nums[r];
    34             
    35             while(l < r && nums[l] <= pivot){
    36                 l++;
    37             }
    38             
    39             nums[r] = nums[l];
    40         }
    41         
    42         nums[l] = pivot;
    43         return l;
    44     }
    45 }
  • 相关阅读:
    CodeForces
    codeforces 1250B The Feast and the Bus
    CF1038D Slime
    CodeForces-208C Police Station
    差分约束
    HDU 2586
    HDU 3948
    HDU 2222
    作业
    闰年的判断
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/12325438.html
Copyright © 2020-2023  润新知