LeetCode题解 => 1207.独一无二的出现次数(二十七)

汇总:LeetCode题解 专栏收录该内容
128 篇文章 1 订阅

独一无二的出现次数

一、LeetCode题解

瞧一瞧~
做题路线( ** =当前阶段)
  • 阶段一(解题总数,单题题解数至上)**
  • 阶段二(解题质量至上)
  • 阶段三(算法思想至上)

二、算法题

题目

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

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

示例 1:

输入:arr = [1,2,2,1,1,3]
输出:true
在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。

示例 2:

输入:arr = [1,2]
输出:false

示例 3:

输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
输出:true

解法一(Hash)

  • 利用hash的存储特点,先记录每一个数字的出现此次数,在记录次数是否存在重复
var uniqueOccurrences = function(arr) {
    var obj = {}, obj1 = {}
    for(let i = 0; i < arr.length; i++){
        if(!obj[arr[i]]){
            obj[arr[i]] = 1
        }else{
            obj[arr[i]]++
        }
    }
    for(var key in obj){
        if(obj1[obj[key]]){
            return false
        }else{
            obj1[obj[key]] = true
        }
    }
    return true
};

在这里插入图片描述

解法二(数学思想)

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值