当前位置: 首页 > news >正文

Leetcode5-在长度2N的数组中找出重复N次的元素(961)

1、题目

给你一个整数数组 nums ,该数组具有以下属性:

nums.length == 2 * n.
nums 包含 n + 1 个 不同的 元素
nums 中恰有一个元素重复 n 次
找出并返回重复了 n 次的那个元素。

示例 1:

输入:nums = [1,2,3,3]
输出:3
示例 2:

输入:nums = [2,1,2,5,3,2]
输出:2
示例 3:

输入:nums = [5,1,5,2,5,3,5,4]
输出:5

2、解

通过哈希表进行存储遍历,记录每个元素出现次数,当出现次数刚好为n时停止遍历输出该元素。

int repeatedNTimes(vector<int> &nums){unordered_map<int, int> cnt;int goalNumber = 0;for(int num : nums){cnt[num] ++;if(nums.size() /2 == cnt[num]){goalNumber = num;break;}}return goalNumber;}

另解

记重复 n次的元素为 x。由于数组 nums 中有 n+1 个不同的元素,而其长度为 2n,那么数组中剩余的元素均只出现了一次。也就是说,我们只需要找到重复出现的元素即为答案。

因此我们可以对数组进行一次遍历,并使用哈希集合存储已经出现过的元素。如果遍历到了哈希集合中的元素,那么返回该元素作为答案。

class Solution {
public:int repeatedNTimes(vector<int>& nums) {unordered_set<int> found;for (int num: nums) {if (found.count(num)) {return num;}found.insert(num);}// 不可能的情况return -1;}
};
http://www.lryc.cn/news/270418.html

相关文章:

  • openssl的 openssl.cnf配置文件详解
  • SpringBoot集成支付宝,看这一篇就够了。
  • 数据结构程序设计——哈希表的应用(2)->哈希表解决冲突的方法
  • 微信小程序开发系列-07组件
  • JavaScript 中 Set 和 Map 的区别
  • web前端之JavaScript
  • C# 图标标注小工具-查看重复文件
  • 浅谈冯诺依曼体系和操作系统
  • Good Bye 2023
  • 多开工具对手机应用响应速度的优化与改进
  • 文件批量整理,文件归类整理,文件批量归类
  • Python+Django+Mysql+SimpleUI搭建后端用户管理系统(非常详细,每一步都清晰,列举了里面所有使用的方法属性)
  • 【Qt-QWidget-QLabel-QFrame-QSlider-View-Bar】
  • 11|代理(上):ReAct框架,推理与行动的协同
  • 毫秒格式化
  • pytorch与cuda版本对应关系汇总
  • Linux系统下隧道代理HTTP
  • unity学习笔记----游戏练习03
  • VistualStudio查看类图UML
  • elasticsearch系列九:异地容灾-CCR跨集群复制
  • 基于Java网上点餐系统设计与实现
  • 公司电脑文件加密系统——防止内部核心文件数据 | 资料外泄,自动智能透明加密保护
  • 计算机毕业设计------ssm茶叶溯源系统
  • 【网络安全 | Misc】miss_01 太湖杯
  • 【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)
  • 《深入理解C++11:C++11新特性解析与应用》笔记六
  • C# 基于事件的观察者模式
  • ARM CCA机密计算软件架构之软件堆栈概述
  • 《Python机器学习原理与算法实现》学习笔记
  • k8s集群通过helm部署skywalking