【每日一题Day142】LC1590使数组和能被 P 整除 | 前缀和+哈希表

简介: 【每日一题Day142】LC1590使数组和能被 P 整除 | 前缀和+哈希表

使数组和能被 P 整除【LC1590】

给你一个正整数数组 nums,请你移除 最短 子数组(可以为 ),使得剩余元素的 能被 p 整除。 不允许 将整个数组都移除。

请你返回你需要移除的最短子数组的长度,如果无法满足题目要求,返回 -1

子数组 定义为原数组中连续的一组元素。

这种只差一点的感觉 真难受

  • 思路

image.png

  • 因此我们可以将前缀和放入哈希表中,哈希表存放前缀和及其对应的下标,然后对于每个right,查找是否有符合的left,有则更新最小长度
  • 实现
    为了防止越界,前缀和数组记录对p取余的结果
class Solution {
    public int minSubarray(int[] nums, int p) {
        int n = nums.length, ans = n;
        var s = new int[n + 1];
        for (int i = 0; i < n; ++i)
            s[i + 1] = (s[i] + nums[i]) % p;
        int x = s[n];
        if (x == 0) return 0; // 移除空子数组(这行可以不要)
        var last = new HashMap<Integer, Integer>();
        for (int i = 0; i <= n; ++i) {
            last.put(s[i], i);
            // 如果不存在,-n 可以保证 i-j >= n
            int j = last.getOrDefault((s[i] - x + p) % p, -n);
            ans = Math.min(ans, i - j);
        }
        return ans < n ? ans : -1;
    }
}
作者:灵茶山艾府
链接:https://leetcode.cn/problems/make-sum-divisible-by-p/solutions/2158435/tao-lu-qian-zhui-he-ha-xi-biao-pythonjav-rzl0/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


image.png

目录
相关文章
|
9月前
|
存储 分布式计算 监控
阿里云服务器实例经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i详解与选择策略
在阿里云现在的活动中,可选的云服务器实例规格主要有经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例,虽然阿里云在活动中提供了多种不同规格的云服务器实例,以满足不同用户和应用场景的需求。但是有的用户并不清楚他们的性能如何,应该如何选择。本文将详细介绍阿里云服务器中的经济型e、通用算力型u1、计算型c8i、通用型g8i、内存型r8i实例的性能、适用场景及选择参考,帮助用户根据自身需求做出更加精准的选择。
|
JavaScript 算法 UED
虚拟 DOM 是如何避免频繁重绘的?
虚拟 DOM 通过构建虚拟 DOM 树、比较差异、批量更新、精确更新、异步更新以及局部渲染优化等多种机制,有效地避免了频繁重绘,提高了页面的渲染性能和用户体验。这些机制相互配合,使得虚拟 DOM 在处理复杂的页面更新时能够更加高效和智能,减少不必要的性能开销。
262 58
|
10月前
|
人工智能 自然语言处理 算法
垂直领域大模型必须备案吗?90%企业都搞错的大模型备案真相!
珠宝设计师专用的大模型是否需要备案?本文解析大模型备案与算法备案的区别及法规边界。大模型备案针对公众服务,仅面向专业设计师可暂缓;但算法备案必须完成。涉及深度合成类算法的企业需在30日内备案。合规不仅是义务,更是提升企业竞争力的关键。
|
C语言
【C生万物】 结构体篇
【C生万物】 结构体篇
186 0
|
前端开发 JavaScript Java
正则表达式总结
创建正则表达式 1.使用RegExp()构造函数来创建 RegExp()构造函数非常有用,特别是在需要动态创建正则表达式的时候,这种情况往往没办法通过写死在代码中的正则表达式直接量来实现。
1102 2
|
存储 专有云 云栖大会
【观察】上云势不可挡,阿里云全力冲刺企业级市场
4月20日云栖大会·深圳峰会在深圳大中华喜来登酒店顺利举行。云栖大会深圳峰会,有前沿技术深度分享、Workshop阿里云开放实验室、行业企业聚会、Tech Insight实战干货,更有20+场分论坛,120+高浓度实战演讲。本次峰会主会场内容看点很多,在这里为大家做下简单梳理。从下面内容不难看出,阿
5394 0
|
9天前
|
数据采集 人工智能 安全