前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode 1207. 独一无二的出现次数(C语言)

Leetcode 1207. 独一无二的出现次数(C语言)

作者头像
Kindear
发布2020-10-30 10:03:31
5720
发布2020-10-30 10:03:31
举报
1207. 独一无二的出现次数

给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。

如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false

示例 1:

代码语言:javascript
复制
输入:arr = [1,2,2,1,1,3]
输出:true
解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。

示例 2:

代码语言:javascript
复制
输入:arr = [1,2]
输出:false

示例 3:

代码语言:javascript
复制
输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
输出:true

提示:

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

解题思路

  1. 设置一个计数器count统计每个数值出现的次数,把对应数值作为下标注意负值,因此可以加上MAXN
  2. 设置一个计数器的计数器,如果有两个以上的数出现次数相同,那么肯定有对应的多个count相等,即存在count_count的值大于等于2。

解题代码

代码语言:javascript
复制
#define MAXN 1010
bool uniqueOccurrences(int* arr, int arrSize){
    int count[MAXN*2];
    int count_count[MAXN*2];
    memset(count,0,sizeof(count));
    memset(count_count,0,sizeof(count_count));
    int i = 0;
    for(;i<arrSize;i++)
    {
        count[arr[i]+MAXN]++;
    }
    for(i=0;i<MAXN*2;i++)
    {

        count_count[count[i]]+=count[i]==0?0:1;
    }
    for(i = 0;i<MAXN*2;i++)
    {
        if(count_count[i] >= 2) return false;
    }
    return true;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1207. 独一无二的出现次数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档