LeetCode.1365. 有多少小于当前数字的数字

1365. 有多少小于当前数字的数字

难度:easy

LeetCode.1365. 有多少小于当前数字的数字_第1张图片

LeetCode.1365. 有多少小于当前数字的数字_第2张图片

将原数组排序,数组下标即为有多少个数字小于数字。通过哈希表存储数字与下标信息。细节就是要注意有重复数字的情况,通过containsKey判断一下。 

 Java:

class Solution {
    public int[] smallerNumbersThanCurrent(int[] nums) {
        Map map = new HashMap<>();
        int[] arr = Arrays.copyOf(nums, nums.length);

        Arrays.sort(arr);
        
        for (int i = 0; i < arr.length; i++) {
            if (!map.containsKey(arr[i])) {
                map.put(arr[i], i);
            }
        }

        int[] ans = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            ans[i] = map.get(nums[i]);
        }
        return ans;
    }
}

你可能感兴趣的:(LeetCode,#,数组,leetcode,算法,职场和发展)