13. 找出数组中重复的数字【难度: 简单 / 知识点: 模拟】


方法一: map 计数
时间复杂度O(nlongn) 空间复杂度多了一个二叉树

class Solution {public:int duplicateInArray(vector<int>& nums){map<int,int>mp;for(int i=0;i<nums.size();i++){if(nums[i]<0||nums[i]>=nums.size()) return -1;mp[nums[i]]++;}for(auto i=mp.begin();i!=mp.end();i++) if(i->second>1) return i->first;return -1;}
};

方法二: 交换
时间复杂度: O(n) 没有用多余的空间

class Solution {public:int duplicateInArray(vector<int>& nums){int n=nums.size();for(int i=0;i<n;i++) if(nums[i]<0||nums[i]>=n) return -1;for(int i=0;i<n;i++){while(nums[nums[i]]!=nums[i]) swap(nums[i],nums[nums[i]]);//如果对应的位置和值不相等就一直交换if(nums[i]!=i) return nums[i];//如果说还不等,说明位置已经被占了,即有重复的数}return -1;}
};

13. 找出数组中重复的数字【难度: 简单 / 知识点: 模拟】相关推荐

  1. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  2. 找出数组中重复的数字---多思路

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

  3. java如何找重复数字_Java如何找出数组中重复的数字

    题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...

  4. 图解面试题:找出数组中重复的数字?

    今天分享的题目来源于 LeetCode 上的剑指 Offer 系列 面试题03. 数组中重复的数字. 题目链接:https://leetcode-cn.com/problems/shu-zu-zhon ...

  5. 01、找出数组中重复的数字

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

  6. 剑指offer 有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来(leetcode有空就刷系列之找出数组中重复的数字)

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

  7. JS实现找出数组中重复的数字的三种方法

    分享在JS中实现--找出数组中重复数字的方法的三种 法一. 排序比较法 先排序,再通过遍历比较,若相等,则添加到结果数组中,最后对结果数组进行去重,即可得到结果. function getSameNu ...

  8. AcWing之找出数组中重复的数字

    题目 给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内. 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. 请找出数组中任意一个重复的 ...

  9. 找出数组中重复的数字

    给定一个长度为 nn 的整数数组 nums,数组中所有的数字都在 0∼n−10∼n−1 的范围内. 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次. 请找出数组中任意一个 ...

最新文章

  1. android 获取当前网络,Android 获取当前网络连接的类型信息
  2. python 多关键字排序_用Python排序字​​典
  3. Delphi插件创建、调试与使用应用程序扩展
  4. 基于WheelView的时间日期选择器封装
  5. Docker入门之安装与卸载
  6. 非越狱iPad实现外接键盘全APP五笔输入(IOS14已自带五笔)
  7. edius隐藏快捷键_EDIUS 常用快捷键
  8. 微信推送封面尺寸_微信公众平台图片最佳尺寸大小是多少
  9. mysql 十年_十年前的老问题,MySQL 8.0有了答案
  10. sklearn.metrics.accuracy_score/precision_score/recall_score、micro/macro/weighted(准确率、召回率)
  11. 软件测试面试两分钟自我介绍
  12. Apple 等六大生态系统的崛起
  13. 计算机组装配置(之电源选购)
  14. 18-windows10如何将电脑图标显示在桌面
  15. 面试华为必备:华为18级大牛呕心沥血三年整理的 趣谈网络协议
  16. Power OJ 2844: New contest【模拟】
  17. 机动车 合格证 二维码 解密
  18. Unity3D 摄像机滑动跟随
  19. 如何使用安卓开发工具 Android Studio
  20. 学习web前端,初学者应该用什么编程软件

热门文章

  1. 机器学习实战-数据探索(变量变换、生成)
  2. Linux绝对路径和相对路径简单介绍
  3. SQL Server如何查看存储过程的执行计划
  4. guava-collections
  5. 几个前端时间插件总结
  6. Technical news July-11
  7. [CareerCup][Google Interview] 找出现次数
  8. 操作系统习题6—存储管理2
  9. php 获取动态时间,PHP 显示动态时间
  10. matplot 绘图总结