2020.10.27-简单:有多少小于当前数字的数字

题目链接:

https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number/
package leetcode;

public class Smaller_01 {
     public static int[] SmallerByFreq(int[] nums) {//快速排序
        int[] freq=new int[101];
        //创建以数字为键,以数字出现的次数为值的数组(题目给出数组长度0-100所以数组长度为101)
        for (int num:nums) {
            freq[num]++;
        }
        //// freq记录包含自身在内的和比自己小的数的总和
        for (int i = 1; i < freq.length-1; i++) {
            freq[i]+=freq[i-1];
        }
        //如果nums[i]=0会让freq数组越界需要判断
        //现在freq记录的是包含自身在内的和比自己小的数的总和
        //所以freq[nums[i]-1]记录的是比自己小的数的总和
        for (int i =0; i < nums.length; i++) {  
            if(nums[i]==0) {
                nums[i]=0;
            }else {
                nums[i]=freq[nums[i]-1];
            }
        }  
        return nums;
    }
    public static void main(String[] args) {
        int[] nums=new int[] {8,1,2,2,3};
        Smaller_01 smaller_01=new Smaller_01();
        smaller_01.SmallerByFreq(nums);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容