leetcodeSolution 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); 7 8 iota(idxs, idxs + n, 0); 9 sort(idxs, idxs + n, [&](int a, int b) { return nums[a] < nums[b]; }); 10 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 } 18 19 return res; 20 } 21 }; 22 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); 30 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]]; 38 39 return res; 40 } 41 };