技术栈

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

阳光男孩012024-08-27 22:27

力扣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;
      }
  };
上一篇:【石子合并】
下一篇:Java设计模式【桥接模式】-结构型
相关推荐
2301_81548293
6 分钟前
C++编译期矩阵运算
开发语言·c++·算法
☆566
11 分钟前
C++中的类型擦除技术
开发语言·c++·算法
m0_56988147
16 分钟前
C++与自动驾驶系统
开发语言·c++·算法
2401_83319773
36 分钟前
C++代码切片分析
开发语言·c++·算法
月落归舟
37 分钟前
每日算法题 14---14.环形链表
数据结构·算法·链表
m0_62143852
37 分钟前
实时音频处理C++实现
开发语言·c++·算法
weixin_42192269
40 分钟前
模板代码性能测试
开发语言·c++·算法
Liu62888
1 小时前
C++中的模板方法模式
开发语言·c++·算法
qq_33490315
1 小时前
高性能网络协议栈
开发语言·c++·算法
光电笑映
1 小时前
STL 源码解剖系列:map/set 的底层复用与红黑树封装
c语言·数据结构·c++·算法
热门推荐
01GitHub 镜像站点02Qwen3.5 开源全解析:从 0.8B 到 397B,代际升级 + 全场景选型指南03围棋-html版本04小黑课堂计算机二级WPSoffice题库软件下载安装教程(2026年3月最新版)05班级宠物园部署指南06OpenClaw 使用和管理 MCP 完全指南07UV安装并设置国内源08“wsl --install -d Ubuntu-22.04”下载慢,中国地区离线安装 Ubuntu 22.04 WSL方法(亲测2025年5月6日)09AI 编程三剑客:Spec-Kit、OpenSpec、Superpowers 深度对比与实战指南10让 Trae IDE 智能体 “读懂”文档 Excel+PDF+DOCX :mcp-documents-reader 工具使用指南