剑指Offer - 面试题3. 数组中重复的数字(哈希)
发布日期:2021-07-01 03:20:04 浏览次数:2 分类:技术文章

本文共 600 字,大约阅读时间需要 2 分钟。

1. 题目

找出数组中重复的数字。

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3  限制:2 <= n <= 100000

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 哈希set,O(1)时间复杂度实现查找
  • 该题时间复杂度为 O(n)
class Solution {
public: int findRepeatNumber(vector
& nums) {
unordered_set
s; for(auto& n : nums) {
if(!s.count(n)) s.insert(n); else return n; } return -1; }};

在这里插入图片描述

转载地址:https://michael.blog.csdn.net/article/details/104271451 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:剑指Offer - 面试题4. 二维数组中的查找(双指针)
下一篇:LeetCode 1348. 推文计数(哈希map+set)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年05月05日 09时14分12秒