leetcodeSolution 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); 4 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 } 20 21 return mini >= prev; 22 } 23 };