剑指offer-查找数组中重复的数字
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入:
 [2, 3, 1, 0, 2, 5, 3]
 输出:2 或 3
来源:力扣(LeetCode)
 链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
限制: 2 <= n <= 100000
第一种解决方法使用字典依次放入数据,如果set中有重复的就返回没有就添加
- 空间: O(N)
- 时间: O(N)
/**
     * 第一种使用字典依次放入数据,如果set中有就返回没有就添加
     * 空间: O(N)
     * 时间: O(N)
     * @param nums
     * @return
     */
    public int findRepeatNumber(int nums[]){
        Set<Integer> set = new HashSet();
        for (int i = 0; i < nums.length; i++) {
            if (set.contains(nums[i])){
                return nums[i];
            }else{
                set.add(nums[i]);
            }
        }
        return -1;
    }
第二种
 不使用集合;需要先排序
 * 声明快慢指针找到相邻的两个元素如果相等就返回这个元素
- 时间:O(NlogN)
- 空间:O(1)
 具体实现
public int findRepeatNumber(int nums[]){
        //先排序
        Arrays.sort(nums);
        //快慢指针,查找重复元素
        int quick = 1;
        int slow = 0;
        while (slow<quick) {
            if (nums[slow]==nums[quick]){
                return nums[slow];
            }
            quick++;
            slow++;
        }
        return -1;
    }
剑指offer-查找数组中重复的数字的更多相关文章
- 剑指 Offer 03. 数组中重复的数字
		剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知 ... 
- 菜鸟刷题路:剑指 Offer 03. 数组中重复的数字
		剑指 Offer 03. 数组中重复的数字 哈希表/set class Solution { public int findRepeatNumber(int[] nums) { HashSet< ... 
- 5.1 剑指 Offer 03. 数组中重复的数字
		类型题:剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字.在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了, ... 
- 【剑指Offer】数组中重复的数字 解题报告(Python & C++)
		作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 解题方法 Set 快慢指针 日期 题目地址:https://leetcod ... 
- Go语言实现:【剑指offer】数组中重复的数字
		该题目来源于牛客网<剑指offer>专题. 在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组 ... 
- (python)剑指Offer:数组中重复的数字
		问题描述 在长度为n的数组中,所有的元素都是0到n-1的范围内. 数组中的某些数字是重复的,但不知道有几个重复的数字,也不知道重复了几次,请找出任意重复的数字. 例如,输入长度为7的数组{2,3,1, ... 
- 剑指Offer 50. 数组中重复的数字 (数组)
		题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ... 
- 剑指offer:数组中重复的数字
		题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度 ... 
- [剑指Offer] 50.数组中重复的数字
		题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ... 
- 【剑指offer】数组中重复的数字
		题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ... 
随机推荐
- 题解-Decrease
			[MdOI2020] Decrease 古老的博文. 今天巨佬团队 \(\texttt{luogu}\) 公开赛中的第三题,当时我写了好久才想到暴力做法 \(\texttt{42分}\),后来我还很离 ... 
- 微信开发中,不同手机系统遇到的bug(不定时更新)
			Ios系统 1.body上绑定click事件失效. 解决:body标签下面,用个div,当做包裹所有内容的大容器.给这个div,绑定click事件. 2.不支持 YYYY-MM-DD 的时间格式. 用 ... 
- Linux下基于.NET5开发CAX应用
			<<.NET5下的三维应用程序开发>>一文中介绍了如何在.NET5下使用AnyCAD开发应用程序.相比.NET4.x,.NET5一大进步便是可以跨平台,即可以在Linux.Ma ... 
- Sublime2-3 Package Control安装
			从菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console.将以下 Python 代码粘贴进去并 enter 执行,不出意外即完成安装.以下提供 ST3 和 ... 
- OGG报错:Cannot load ICU resource bundle 'ggMessage', error code 2 - No such file or directory
			[oracle@dgdb1 ~]$ ggsci Oracle GoldenGate Command Interpreter for OracleVersion 11.2.1.0.3 14400833 ... 
- Jupyter Notebook在多个虚拟环境配置与使用
			1 问题描述 使用Anaconda配置了包括Pytorch.Tensorflow等多个虚拟环境后,依然无法使用Jupyter Notebook选择不同的虚拟环境运行代码,问题如下图所示. 2 解决方法 ... 
- flink连接器-流处理-读写redis
			写入redis resultStream.addSink(new RedisSink(FlinkUtils.getRedisSinkConfig(parameters),new MyRedisMapp ... 
- AWVS批量导入网站(刷漏洞入门)
			今天整了一天这个AWVS批量扫描脚本,主要是下了好几个版本的AWVS,都不稳定,一次次删除又一次次安装. 做这件事儿目的就是为了批量刷漏洞,不过弄好之后又不打算刷漏洞了,不太喜欢无脑刷漏洞,没什么意义 ... 
- 2020年“感恩杯”台州学院第十三届大学生程序设计竞赛D、H、I题解(后续补充)
			D题:小z与他的袜子 描述 小z每天会穿一双新袜子. 开始他的衣柜里有n双袜子,袜子会从1-n进行编号.每天早上他都会从衣柜里拿编号最小的袜子来穿.每天晚上他会把今天穿的袜子扔进篮子里,如果篮子里有n ... 
- 弱肉强食——《哆啦A梦:大雄的新恐龙》观后感
			观看大雄的新恐龙不是在电影院观看的,由于时间的问题无法去电影院观看,是在家通过梦蓝字幕组翻译好的观看的,这个翻译好的视频已经由于版权原因没有发布了. 故事的开始与以往的情节十分相似:大雄因为不想被胖虎 ... 
