又快又好自助建站系统百度投诉中心人工电话号码
给你一个整数数组 nums
,请你将该数组升序排列。
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
实现思路直接看我录制的视频吧算法-归并排序_哔哩哔哩_bilibili
class Solution {public int[] sortArray(int[] nums) {mergeSort(nums, 0, nums.length - 1);return nums;}private void mergeSort(int[] nums, int low, int height) {int mid = (low + height) / 2;if (low < height) {mergeSort(nums, low, mid);mergeSort(nums, mid + 1, height);merge(nums, low, mid, height);}}private void merge(int[] nums, int low, int mid, int height) {int[] temp = new int[height - low + 1];int i = low;int j = mid + 1;int index = 0;while (i <= mid && j <= height) {temp[index++] = nums[i] < nums[j] ? nums[i++] : nums[j++];}while (i <= mid) {temp[index++] = nums[i++];}while (j <= height) {temp[index++] = nums[j++];}for (int k =0 ; k < temp.length; k++) {nums[low + k] = temp[k];}}
}