LeetCode_315计算右侧小于当前元素的个数

给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。
在这里插入图片描述
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-of-smaller-numbers-after-self
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public List<Integer> countSmaller(int[] nums) {
        LinkedList<Integer> list = new LinkedList<Integer>();
        for(int i=nums.length-1;i>=0;i--){
            int value = insertSort(nums,i,nums.length-1);
            list.addFirst(value);
        }
        return list;
    }

    /*
    * 从右向左进行插入排序
    * nums[left]位置还处于无序状态
    * 返回比nums[left]元素小的个数
    */
    public int insertSort(int[] nums, int left, int right){
        int temp = nums[left];
        for(int i=left+1;i<=right;i++){
            if(temp>nums[i]){
                nums[i-1] = temp;
                return right-i+1;
            }else{
                nums[i-1] = nums[i];
                nums[i] = temp;
            }
        }
        return 0;
    }
}
发布了250 篇原创文章 · 获赞 0 · 访问量 1267

猜你喜欢

转载自blog.csdn.net/qq_36198826/article/details/103820900