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;
	}
};
相关推荐
老当益壮梁奶奶18 小时前
Linux软件编程学习笔记(二)Linux文件IO编程入门:从fopen到fgetc
linux·c语言·c++·笔记·学习
雪的季节18 小时前
C++ 高级(泛型编程与模板)(有空再研究吧)
c++
三十岁老牛再出发18 小时前
8月21日总结
c++·python
不可求~19 小时前
C++ 报错交给 AI 之前,先准备好这 8 类信息
开发语言·c++·人工智能
别动我齐刘海1 天前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
傻啦嘿哟1 天前
英雄联盟皮肤爬虫:爬取全皮肤价格与特效,做比价工具
java·c++·爬虫
码匠许师傅1 天前
【C++ 面试真题】24. 聊聊 C++ 的时间日期处理
java·c++·面试
闻道且行之1 天前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
莫浅子1 天前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
小欣加油1 天前
leetcode3069 将元素分配到两个数组中I
数据结构·c++·算法·leetcode·职场和发展