leetcode

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

3011.cpp (671B)


0 class Solution {
1 public:
2 bool canSortArray(vector<int> &nums) {
3 const int n = size(nums);
5 int i = 0, prev = 0, cnt = std::popcount((unsigned)nums[0]);
6 int mini = nums[0], maxi = nums[0];
7 for (int j = 1; j < n; j++) {
8 const int crnt = std::popcount((unsigned)nums[j]);
9 if (cnt == crnt) {
10 mini = min(mini, nums[j]);
11 maxi = max(maxi, nums[j]);
12 continue;
13 }
14 if (mini < prev) return false;
15 prev = maxi;
16 mini = maxi = nums[j];
17 cnt = crnt;
18 i = j;
19 }
21 return mini >= prev;
22 }
23 };