本文 https://github.com/youngyangyang04/leetcode-master 已经收录,里面还有leetcode刷题攻略、各个类型经典题目刷题顺序、思维导图,可以fork到自己仓库,有空看一看一定会有所收获,如果对你有帮助也给一个star支持一下吧!

链接

https://leetcode-cn.com/problems/unique-number-of-occurrences/

思路

这道题目数组在是哈希法中的经典应用,如果对数组在哈希法中的使用还不熟悉的同学可以看这两篇:数组在哈希法中的应用和哈希法:383. 赎金信

进而可以学习一下set在哈希法中的应用,以及map在哈希法中的应用

回归本题,本题强调了-1000 <= arr[i] <= 1000,那么就可以用数组来做哈希,arr[i]作为哈希表(数组)的下标,那么arr[i]可以是负数,怎么办?负数不能做数组下标。

此时可以定义一个2000大小的数组,例如int count[2002];,统计的时候,将arr[i]统一加1000,这样就可以统计arr[i]的出现频率了。

题目中要求的是是否有相同的频率出现,那么需要再定义一个哈希表(数组)用来记录频率是否重复出现过,bool fre[1002]; 定义布尔类型的就可以了,因为题目中强调1 <= arr.length <= 1000,所以哈希表大小为1000就可以了

如图所示:

C++代码如下:

class Solution {
public:bool uniqueOccurrences(vector<int>& arr) {int count[2002] = {0}; // 统计数字出现的频率for (int i = 0; i < arr.size(); i++) {count[arr[i] + 1000]++;}bool fre[1002] = {false}; // 看相同频率是否重复出现 for (int i = 0; i <= 2000; i++) {if (count[i]) {if (fre[count[i]] == false) fre[count[i]] = true;else return false;}}return true;}
};

我是程序员Carl,利用工作之余重刷leetcode,更多精彩算法文章尽在:代码随想录,关注后,回复「Java」「C++」「python」「简历模板」等等,有我整理多年的学习资料,可以加我微信,备注「简单自我介绍」+「组队刷题」,拉你进入刷题群(无任何广告,纯个人分享),每天一道经典题目分析,我选的每一道题目都不是孤立的,而是由浅入深一脉相承的,如果跟住节奏每篇连续着看,定会融会贯通。

以下资料希望对你有帮助:

  • 学习资料以及我的开源项目
  • 我的B站视频:算法和编程语言的讲解
  • leetcode刷题攻略
  • 程序员应该如何写简历(附简历模板)
  • 一线互联网公司技术面试的流程以及注意事项
  • C++面试&C++学习指南知识点整理

如果感觉题解对你有帮助,不要吝啬给一个

「leetcode」1207. 独一无二的出现次数:【数组在哈希法中的经典应用】详解相关推荐

  1. LEETCODE | PYTHON | 1207 | 独一无二的出现次数

    LEETCODE | PYTHON | 1207 | 独一无二的出现次数 1. 题目 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 tru ...

  2. leetcode:1207. 独一无二的出现次数

    给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 true:否则返回 false. 使用HashSet和HashMap 时间复杂度:O(N) ...

  3. (数组) 1207. 独一无二的出现次数 ——【Leetcode每日一题】

    ❓1207. 独一无二的出现次数 难度:简单 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 true:否则返回 false. 示例 1: ...

  4. 1207. 独一无二的出现次数

    1207. 独一无二的出现次数 代码: class Solution {public boolean uniqueOccurrences(int[] arr) {HashMap<Integer, ...

  5. php 合并数组对象,JS内数组合并方法与对象合并实现步骤详解

    这次给大家带来JS内数组合并方法与对象合并实现步骤详解,JS内数组合并方法与对象合并实现的注意事项有哪些,下面就是实战案例,一起来看一下. 1 数组合并 1.1 concat 方法var a=[1,2 ...

  6. C++中数组和指针的关系(区别)详解

    C++中数组和指针的关系(区别)详解 本文转自:http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面: 没有方括号和下标的数组名称实际 ...

  7. 二维数组删除_「leetcode」数组:总结篇!(一文搞懂数组题目)

    数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ...

  8. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  9. js实现kmp算法_「leetcode」459.重复的子字符串:KMP算法还能干这个!

    不瞒你说,重复子串问题,KMP很拿手 题目459.重复的子字符串 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000. 示例 1: ...

  10. 消除左递归c++代码_「leetcode」129. 求根到叶子节点数字之和【递归中隐藏着回溯】详解...

    链接 https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/ 思路 本题和113.路径总和II是类似的思路,做完这道题,可以顺便把113. ...

最新文章

  1. c语言游戏call调用,C语言-植物大战僵尸-刷僵尸call;fps游戏CS-方框透视(矩阵+传统)...
  2. BZOJ3769:BST again(记忆化搜索DP)
  3. Basic Calculator
  4. 《C和指针》——字符串操作补、字符串内存操作
  5. HTTP权威指南记录 ---- 网络爬虫
  6. Android 系统 (79)---Android应用程序安装过程解析
  7. 数据的转换(shp sde mdb 之间的转换)
  8. [知乎] 端游、手游服务端架构演变
  9. C语言读取文件大量数据到数组
  10. 高数_第1章空间解析几何与向量代数__求旋转曲面方程
  11. 到底有多二:一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。
  12. 寄给J.Keisler教授的一电子生日贺卡
  13. 阿里云ECS上使用docker搭建filebeat+kafka集群+zookeep集群+logstash+elasticsearch集群+kibana实现跨主机日志收集系统【四】
  14. 广东省民营企业合作交流协会会长谭铭卓一行到访
  15. 【计算机毕业设计】092二手闲置交易市场系统
  16. 完美实现无限饿了么分销的方法——无感预先生成绑定渠道ID
  17. 阿里云ECS服务器使用教程
  18. mobi怎么在iphone上打开?
  19. EclipseCDT
  20. 如何使用python进行自动网上考试

热门文章

  1. 20145316许心远《网络攻防》第三次实验:免杀原理与实践
  2. RHCE-PXE无人值守装机一
  3. 【心路历程】(NOIP 206)(HNOI 358)
  4. java 调用 c# webservice 压缩 Liststring示例
  5. HtmlTextWriter类的学习
  6. heartbeat 非联网安装(通过配置本地yum文件库安装heartbeat)
  7. git bash上传代码到github
  8. 管道符、重定向、环境变量
  9. 列举ASP.NET 页面之间传递值的几种方式
  10. poj 3278 Catch That Cow (bfs 搜索)