力扣1590.使数组和能被P整除

力扣1590.使数组和能被P整除

  • 同余

    • 转化为求一段区间和余p为x
    • i - j = x
      • j = i - x
cpp 复制代码
  class Solution {
  public:
      int minSubarray(vector<int>& nums, int p) {
          int x = accumulate(nums.begin(),nums.end(),0LL) % p;
          if(x == 0) return 0;
          int n = nums.size(),ans = n,s = 0;
          unordered_map<int,int> last{{s,-1}};
          for(int i=0;i<n;i++)
          {
              s = (s + nums[i]) % p;
              last[s] = i;
              auto it = last.find((s - x + p) % p);
              if(it != last.end())
                  ans = min(ans,i - it->second);
          }
          return ans < n ? ans : -1;
      }
  };
相关推荐
Star在努力17 分钟前
C语言复习八(2025.11.18)
c语言·算法·排序算法
南山安25 分钟前
从反转字符串看透面试官的“内心戏”:你的算法思维到底怎么样?
javascript·算法·面试
雪不下31 分钟前
计算机中的数学:概率(2)
算法
zs宝来了34 分钟前
HOT100-二分查找类型题
算法
_w_z_j_36 分钟前
数组中的最长连续子序列
数据结构·算法
地平线开发者38 分钟前
征程 6E/M 计算平台部署指南
算法·自动驾驶
程序猿小白日记1 小时前
走向智能化:从编程语言看人工智能的未来
leetcode
mit6.8241 小时前
数位dp|组合数学|差分emplace
算法
2301_764441331 小时前
新能源汽车电磁辐射高级预测
python·算法·数学建模·汽车
Keep_Trying_Go1 小时前
论文Leveraging Unlabeled Data for Crowd Counting by Learning to Rank算法详解
人工智能·pytorch·深度学习·算法·人群计数