leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1365.cpp (1048B)


0 // sort + count
1 class Solution {
2 public:
3 vector<int> smallerNumbersThanCurrent(const vector<int> &nums) const {
4 const int n = size(nums);
5 static int idxs[501];
6 vector<int> res(n);
8 iota(idxs, idxs + n, 0);
9 sort(idxs, idxs + n, [&](int a, int b) { return nums[a] < nums[b]; });
11 int cnt = 0;
12 for (int i = 1; i < n; i++) {
13 if (nums[idxs[i]] != nums[idxs[i - 1]]) {
14 cnt = i;
15 }
16 res[idxs[i]] = cnt;
17 }
19 return res;
20 }
21 };
23 // count
24 class Solution {
25 public:
26 vector<int> smallerNumbersThanCurrent(const vector<int> &nums) const {
27 const int n = size(nums);
28 static int count[101];
29 vector<int> res(n);
31 memset(count, 0x00, sizeof(count));
32 for (const int n : nums)
33 count[n + 1]++;
34 for (int i = 1; i <= 100; i++)
35 count[i] += count[i - 1];
36 for (int i = 0; i < size(nums); i++)
37 res[i] = count[nums[i]];
39 return res;
40 }
41 };