2654.cpp 672 B

12345678910111213141516171819202122232425262728293031323334
  1. #include <algorithm>
  2. #include <vector>
  3. #include <numeric>
  4. int minOperations(std::vector<int>& nums) {
  5. int gcd_min = 0;
  6. int n = nums.size();
  7. int count = 0;
  8. for (auto num : nums) {
  9. gcd_min = std::gcd(gcd_min, num);
  10. count += num == 1;
  11. }
  12. if (gcd_min > 1) {
  13. return -1;
  14. }
  15. if (count) return n - count;
  16. int min_size = n;
  17. for(int i = 0;i<n;i++){
  18. int g = 0;
  19. for (int j = i; j < n; j++) {
  20. g = std::gcd(g,nums[j]);
  21. if(g == 1){
  22. min_size = std::min(min_size,j-i);
  23. break;
  24. }
  25. }
  26. }
  27. return min_size + n - 1;
  28. }
  29. int main(){
  30. }
备用站点 当前处于降级运行的备用站点,仅供应急访问,数据和功能可能不是最新。