力扣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;
      }
  };
相关推荐
Jeff-Nolan6 小时前
数据结构(c++版):邻接表的实现
数据结构·链表
千弥霜6 小时前
codeforces1914 C~F
c语言·算法
wyiyiyi6 小时前
【数据结构+算法】进栈顺序推算、卡特兰数与逆波兰表达式
汇编·数据结构·笔记·算法
天若有情6736 小时前
Multi-Stride Predictive RNG:革命性的可控随机数生成算法
算法·算法设计·c++编程·随机数生成·msp-rng·魔术算法
guguhaohao6 小时前
map和set,咕咕咕!
数据结构·c++
C_Liu_6 小时前
14:C++:二叉搜索树
算法
CC-NX7 小时前
32位汇编:实验9分支程序结构使用
汇编·算法·win32·分支结构
万岳科技系统开发7 小时前
外卖小程序中的高并发处理:如何应对大流量订单的挑战
算法·小程序·开源
TL滕7 小时前
从0开始学算法——第二天(时间、空间复杂度)
数据结构·笔记·学习·算法
旺仔老馒头.9 小时前
【数据结构与算法】手撕排序算法(二)
c语言·数据结构·算法·排序算法