【力扣每日一题】1365. 有多少小于当前数字的数字

简介: 【力扣每日一题】1365. 有多少小于当前数字的数字

1. 题目描述

2. 题目思路

  • 给定一个数组,让你返回每个数值数组中比他小的个数
  • 思路一:直接暴力,两次for循环,出结果
  • 思路二:快速排序,prev == -1 || data[i][0] != data[i - 1][0],如果当前的数值不等于前面的数值的话,说明不重复,进行ret[data[i][1]] = prev;
  • 思路三:桶排序,一遍循环放桶中,一遍循环求下前缀和,最后一遍得出结果注意:因为该题目指定了规定的数据区间

3. 题目代码

public static int[] SmallerNumbersThanCurrent(int[] nums)
        {
            // 桶排
            int[] array = new int[101];
            for (int i = 0; i < nums.Length; i++)
            {
                array[nums[i]]++;
            }
            for (int i = 1; i < 101; i++)
            {
                array[i] = array[i] + array[i - 1];
            }
            int[] cnt = new int[nums.Length];
            for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] == 0)
                {
                    cnt[i] = 0;
                }
                else
                {
                    cnt[i] = array[nums[i] - 1];
                }
            }
            return cnt;
        }


相关文章
|
8天前
|
Go
golang力扣leetcode 713.乘积小于K的子数组
golang力扣leetcode 713.乘积小于K的子数组
21 0
|
9月前
力扣 713. 乘积小于 K 的子数组
力扣 713. 乘积小于 K 的子数组
39 0
|
12月前
|
人工智能 搜索推荐 vr&ar
每日一题[LeetCode 315]计算右侧小于当前元素的个数
发现leetcode的困难难度做起来还是需要点时间的(还是我太菜了),而且可能大多数人也不能接受,所以明天开始穿插做中等难度题目。
力扣315计算右侧小于当前元素的个数
力扣315计算右侧小于当前元素的个数
67 0
leetcode 1365 多少小于当前数字的数字
leetcode 1365 多少小于当前数字的数字
48 0
LeetCode每日一题(17)—— 乘积小于 K 的子数组(双指针)
乘积小于 K 的子数组 1.题目 2.示例 3.思路 4.代码
|
算法 PHP
力扣(LeetCode)算法题解:1365. 有多少小于当前数字的数字
力扣(LeetCode)算法题解:1365. 有多少小于当前数字的数字
110 0
LeetCode Contest 178-1365. 有多少小于当前数字的数字 How Many Numbers Are Smaller Than the Current Number
LeetCode Contest 178-1365. 有多少小于当前数字的数字 How Many Numbers Are Smaller Than the Current Number
|
算法 C++ Python
双指针滑窗经典问题算法模板-附LeetCode每日一题题解:713. 乘积小于 K 的子数组-题解-python && C++源代码
双指针滑窗经典问题算法模板-附LeetCode每日一题题解:713. 乘积小于 K 的子数组-题解-python && C++源代码
LeetCode每日一题——713. 乘积小于 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。
93 0