你一個整數(shù)數(shù)組 nums,請你將該數(shù)組升序排列。
示例 1:
輸入:nums = [5,2,3,1]
輸出:[1,2,3,5]
提示:
1 <= nums.length <= 50000
-50000 <= nums[i] <= 50000
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/sort-an-array
著作權歸領扣網(wǎng)絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
思路:應該是桶排序吧,不過先找到所給數(shù)組中的最大和最小值,以縮小范圍,減小運行時間
class Solution {
public int[] sortArray(int[] nums) {
//找到最大最小值縮小范圍
int min=50001;
int max=-50001;
for(int num:nums)
{
min=Math.min(num,min);
max=Math.max(num,max);
}
//記錄數(shù)組中每個數(shù)的個數(shù)
int[] temp=new int[max-min+1];
for(int num:nums)
{
temp[num-min]++;
}
//依順序放回原數(shù)組中
int index=0;
for(int num=min;num<=max;num++)
{
int count=temp[num-min]
while(count-->0)
{
nums[index++]=num;
}
}
return nums;
}
}
因篇幅問題不能全部顯示,請點此查看更多更全內容
Copyright ? 2019- 91gzw.com 版權所有 湘ICP備2023023988號-2
違法及侵權請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務所王興未律師提供法律服務