基数排序(实现对负数的排序)以力扣912题为例

力扣912题(用基数排序实现):  力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

class Solution {
    public int[] sortArray(int[] nums) {
        // 基数排序(实现负数和正数的排序),空间换时间
        int max = nums[0];
        int min = nums[0];
        for (int i = 1; i < nums.length; i++) {
            max = nums[i] > max ? nums[i] : max;
            min = nums[i] < min ? nums[i] : min;
        }
        //确定最大位是什么?(个、十、百。。。)
        int maxLength = (max + "").length() > (min + "").length() ? (max + "").length() : (min + "").length();
        // 定义一个二维数组
        int[][] bucket = new int[10][nums.length];
        int[] count = new int[10];// 记录每个桶中元素的个数

        //将数组中所有的数加上最小值的绝对值,变成正数
        for(int i =0;i

你可能感兴趣的:(算法,数据结构,leetcode)