1590. 使数组和能被 P 整除

1590. 使数组和能被 P 整除


题目链接:1590. 使数组和能被 P 整除

代码如下:

cpp 复制代码
class Solution {
public:
	int minSubarray(vector<int>& nums, int p) {
		int x = 0;
		for (auto num : nums) {
			x = (x + num) % p;
		}
		if (x == 0) {
			return 0;
		}
		unordered_map<int, int> index;
		int y = 0, res = nums.size();
		for (int i = 0;i < nums.size();i++) {
			index[y] = i;	// f[i] mod p = y, 因此哈希表记录 y 对应的下标为 i
			y = (y + nums[i]) % p;
			if (index.count((y - x + p) % p) > 0) {
				res = min(res, i - index[(y - x + p) % p] + 1);
			}
		}
		return res == nums.size() ? -1 : res;
	}
};
相关推荐
老洋葱Mr_Onion15 分钟前
【C++】高精度模板
开发语言·c++·算法
我不是懒洋洋2 小时前
从零实现一个分布式计算:MapReduce的核心设计
c++
小王C语言11 小时前
【7. 实现登录注册模块】:实现会话管理、注册/登录/退出 API
网络·c++
峥无14 小时前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波14 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
小王C语言15 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++
小王C语言15 小时前
【8.进行接口测试】:通过 curl 进行接口自动化测试 / 通过 python 程序进行接口自动化测试
网络·c++
888CC++16 小时前
C++ 快速学习指南:从入门到进阶的实战路线
开发语言·c++
小小晓.16 小时前
C++记:函数
开发语言·c++·算法
驱动小百科18 小时前
Windows运行库合集下载 VC++、DirectX、.NET运行库安装教程
c++·windows·.net·windows运行库合集下载·windows运行库安装