天池 在线编程 数组划分III(计数)
发布日期:2021-07-01 03:35:02 浏览次数:2 分类:技术文章

本文共 854 字,大约阅读时间需要 2 分钟。

文章目录

1. 题目

给你一个整数数组和一个整数K,请你判断数组是否可以划分为若干大小为k序列,并满足以下条件:

  • 数组中的每一个数恰恰出现在一个序列中
  • 一个序列中的数都是互不相同
  • 数组中相同元素是被划分到不同序列中的

如何可以划分,返回True,否则返回False。

数组长度小于等于10^5。

示例例1:input: array=[1,2,3,4], k = 2output:true例2:input: array=[1,2,2,3], k = 3output:false

2. 解题

class Solution {
public: /** * @param arr: the input array * @param k: the sequence length * @return: if it is possible, return true, otherwise false */ bool partitionArray(vector
&arr, int k) {
// write your code here int n = arr.size(); if(n%k != 0) return false; // 不能整除 int bucket = n/k; // 桶的个数 map
m; for(auto a : arr) {
if(++m[a] > bucket)//个数超过桶的个数,肯定不满足各个数不一样的条件 return false; } return true; }};

151ms C++


我的CSDN

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

Michael阿明

转载地址:https://michael.blog.csdn.net/article/details/111402217 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:天池 在线编程 最小振幅(排序)
下一篇:牛客 XOR和(找规律)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月14日 18时48分06秒