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;
	}
};
相关推荐
冷崖4 小时前
原子锁操作
c++·后端
旖旎夜光8 小时前
C++(17)
c++·学习
Larry_Yanan9 小时前
Qt多进程(三)QLocalSocket
开发语言·c++·qt·ui
superman超哥9 小时前
仓颉语言中元组的使用:深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
Lucas5555555510 小时前
现代C++四十不惑:AI时代系统软件的基石与新征程
开发语言·c++·人工智能
_MyFavorite_11 小时前
cl报错+安装 Microsoft Visual C++ Build Tools
开发语言·c++·microsoft
charlie11451419111 小时前
现代嵌入式C++教程:C++98——从C向C++的演化(2)
c语言·开发语言·c++·学习·嵌入式·教程·现代c++
zmzb010311 小时前
C++课后习题训练记录Day55
开发语言·c++
李白同学11 小时前
C++:继承
开发语言·c++
k***921611 小时前
【C++】STL详解(九)—priority_queue的使用与模拟实现
开发语言·c++