1365. How Many Numbers Are Smaller Than the Current Number LeetCode Solution
In this guide, you will get 1365. How Many Numbers Are Smaller Than the Current Number LeetCode Solution with the best time and space complexity. The solution to How Many Numbers Are Smaller Than the Current Number problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- How Many Numbers Are Smaller Than the Current Number solution in C++
- How Many Numbers Are Smaller Than the Current Number solution in Java
- How Many Numbers Are Smaller Than the Current Number solution in Python
- Additional Resources
Problem Statement of How Many Numbers Are Smaller Than the Current Number
Given the array nums, for each nums[i] find out how many numbers in the array are smaller than it. That is, for each nums[i] you have to count the number of valid j’s such that j != i and nums[j] < nums[i].
Return the answer in an array.
Example 1:
Input: nums = [8,1,2,2,3]
Output: [4,0,1,1,3]
Explanation:
For nums[0]=8 there exist four smaller numbers than it (1, 2, 2 and 3).
For nums[1]=1 does not exist any smaller number than it.
For nums[2]=2 there exist one smaller number than it (1).
For nums[3]=2 there exist one smaller number than it (1).
For nums[4]=3 there exist three smaller numbers than it (1, 2 and 2).
Example 2:
Input: nums = [6,5,4,8]
Output: [2,1,0,3]
Example 3:
Input: nums = [7,7,7,7]
Output: [0,0,0,0]
Constraints:
2 <= nums.length <= 500
0 <= nums[i] <= 100
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(n)
1365. How Many Numbers Are Smaller Than the Current Number LeetCode Solution in C++
class Solution {
public:
vector<int> smallerNumbersThanCurrent(vector<int>& nums) {
constexpr int kMax = 100;
vector<int> ans;
vector<int> count(kMax + 1);
for (const int num : nums)
++count[num];
for (int i = 1; i <= kMax; ++i)
count[i] += count[i - 1];
for (const int num : nums)
ans.push_back(num == 0 ? 0 : count[num - 1]);
return ans;
}
};
/* code provided by PROGIEZ */
1365. How Many Numbers Are Smaller Than the Current Number LeetCode Solution in Java
class Solution {
public int[] smallerNumbersThanCurrent(int[] nums) {
final int kMax = 100;
int[] ans = new int[nums.length];
int[] count = new int[kMax + 1];
for (final int num : nums)
++count[num];
for (int i = 1; i <= kMax; ++i)
count[i] += count[i - 1];
for (int i = 0; i < nums.length; ++i)
ans[i] = nums[i] == 0 ? 0 : count[nums[i] - 1];
return ans;
}
}
// code provided by PROGIEZ
1365. How Many Numbers Are Smaller Than the Current Number LeetCode Solution in Python
class Solution:
def smallerNumbersThanCurrent(self, nums: list[int]) -> list[int]:
kMax = 100
count = collections.Counter(nums)
for i in range(1, kMax + 1):
count[i] += count[i - 1]
return [0 if num == 0 else count[num - 1]
for num in nums]
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.