前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 2261. 含最多 K 个可整除元素的子数组

LeetCode 2261. 含最多 K 个可整除元素的子数组

作者头像
Michael阿明
发布2022-05-10 10:05:48
发布2022-05-10 10:05:48
35000
代码可运行
举报
运行总次数:0
代码可运行

文章目录

1. 题目

给你一个整数数组 nums 和两个整数 k 和 p ,找出并返回满足要求的不同的子数组数,要求子数组中最多 k 个可被 p 整除的元素。

如果满足下述条件之一,则认为数组 nums1 和 nums2 是 不同 数组:

  • 两数组长度 不同 ,或者
  • 存在 至少 一个下标 i 满足 nums1[i] != nums2[i]

子数组 定义为:数组中的连续元素组成的一个 非空 序列。

代码语言:javascript
代码运行次数:0
运行
复制
示例 1:
输入:nums = [2,3,3,2,2], k = 2, p = 2
输出:11
解释:
位于下标 0、3 和 4 的元素都可以被 p = 2 整除。
共计 11 个不同子数组都满足最多含 k = 2 个可以被 2 整除的元素:
[2]、[2,3]、[2,3,3]、[2,3,3,2]、[3]、[3,3]、[3,3,2]、[3,3,2,2]、[3,2]、[3,2,2] 和 [2,2] 。
注意,尽管子数组 [2] 和 [3] 在 nums 中出现不止一次,但统计时只计数一次。
子数组 [2,3,3,2,2] 不满足条件,因为其中有 3 个元素可以被 2 整除。

示例 2:
输入:nums = [1,2,3,4], k = 4, p = 1
输出:10
解释:
nums 中的所有元素都可以被 p = 1 整除。
此外,nums 中的每个子数组都满足最多 4 个元素可以被 1 整除。
因为所有子数组互不相同,因此满足所有限制条件的子数组总数为 10 。
 
提示:
1 <= nums.length <= 200
1 <= nums[i], p <= 200
1 <= k <= nums.length

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/k-divisible-elements-subarrays 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 暴力枚举所有可能,将数组转成字符串进行哈希检验是否存在
代码语言:javascript
代码运行次数:0
运行
复制
class Solution:
    def countDistinct(self, nums: List[int], k: int, p: int) -> int:
        n, ans = len(nums), 0
        subarr = set()
        for i in range(n):
            for j in range(i+1, n+1):
                arr = nums[i:j]
                ct = 0
                for a in arr:
                    if a%p==0:
                        ct += 1
                    if ct > k:
                        break
                if ct <= k:
                    hash = '_'.join(str(x) for x in arr)
                    if hash not in subarr:
                        ans += 1
                        subarr.add(hash)
        return ans

5604 ms 23.3 MB Python3

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档