「leetcode」1207. 独一无二的出现次数:【数组在哈希法中的经典应用】详解
本文 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 | PYTHON | 1207 | 独一无二的出现次数 1. 题目 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 tru ... 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 true:否则返回 false. 使用HashSet和HashMap 时间复杂度:O(N) ... ❓1207. 独一无二的出现次数 难度:简单 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数. 如果每个数的出现次数都是独一无二的,就返回 true:否则返回 false. 示例 1: ... 1207. 独一无二的出现次数 代码: class Solution {public boolean uniqueOccurrences(int[] arr) {HashMap<Integer, ... 这次给大家带来JS内数组合并方法与对象合并实现步骤详解,JS内数组合并方法与对象合并实现的注意事项有哪些,下面就是实战案例,一起来看一下. 1 数组合并 1.1 concat 方法var a=[1,2 ... C++中数组和指针的关系(区别)详解 本文转自:http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面: 没有方括号和下标的数组名称实际 ... 数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ... 构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ... 不瞒你说,重复子串问题,KMP很拿手 题目459.重复的子字符串 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成.给定的字符串只含有小写英文字母,并且长度不超过10000. 示例 1: ... 链接 https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/ 思路 本题和113.路径总和II是类似的思路,做完这道题,可以顺便把113. ...「leetcode」1207. 独一无二的出现次数:【数组在哈希法中的经典应用】详解相关推荐
最新文章
热门文章