class Solution {public: int minSwaps(vector<int>& nums) { int num_ones = 0; for (const auto& x : nums) { num_ones += (x == 1); } vector<int> s(1, 0); for (const auto x : nums) { s.push_back(s.back() + x); } for (const auto x : nums) { s.push_back(s.back() + x); } int ans = INT_MAX; for (int i = 0; i < s.size(); i++) { if (i - num_ones >= 0) { ans = min(ans, num_ones - (s[i] - s[i - num_ones])); } } return ans; }};