【LeetCode100】--- 寻找重复数

news/2025/1/24 19:17:45/

题目传送门

方法一:暴力解法(超时)

算法原理

双重循环,每次固定一个数,再遍历别的数。比较这两个数是否相等,

若相等则返回这个数。就是重复数。

复杂度分析 

时间复杂度:O(N方)

空间复杂度:O(1)

代码:

class Solution {public int findDuplicate(int[] nums) {int n = nums.length;for(int i = 0; i < n-1; i++){for(int j = i+1; j < n; j++){if(nums[i] == nums[j]){return nums[i];}}}return -1;}
}

 

方法二:哈希表(数组模拟)

算法原理

建立一个大小为n的数组,用来模拟哈希表。

以各个数字作为下标,来统计各个数字出现的次数。

最终遍历这个哈希数组,若有大于1的数,则返回这个下标就是重复出现的数字。

代码:

class Solution {public int findDuplicate(int[] nums) {int n = nums.length;int[] hash = new int[n];for(int i = 0; i < n; i++){hash[nums[i]]++;}for(int i = 0; i < n; i++){if(hash[i] > 1){return i;}}return -1;}
}

复杂度分析 

时间复杂度:O(N) 为这个数组的长度

空间复杂度:O(N)为这个数组的长度

 方法三:哈希表(HashSet)

算法原理

创建HashSet这个哈希表。遍历数组,如果这个数字在哈希表中出现了,那么就返回这个数

如果没有出现,那么就将这个数添加到哈希表中。

class Solution {public int findDuplicate(int[] nums) {Set<Integer> seen = new HashSet<>();for(int n : nums){if(seen.contains(n)){return n;}seen.add(n);}return -1;}
}

 复杂度分析

时间复杂度:O(N) 为这个数组的长度,遍历的时候为n次

空间复杂度:O(N)为这个数组的长度


http://www.ppmy.cn/news/1565856.html

相关文章

【Flutter】platform_view之AppKitView在哪个flutter版本添加的

通过一下文件对比判断哪个版本添加的 已添加&#xff1a; https://github.com/flutter/flutter/blob/3.16.0/packages/flutter/lib/src/widgets/platform_view.dart https://github.com/flutter/flutter/blob/3.15.0-0.0.pre/packages/flutter/lib/src/widgets/platform_vie…

2025春招 SpringCloud 面试题汇总

大家好&#xff0c;我是 V 哥。SpringCloud 在面试中属于重灾区&#xff0c;不仅是基础概念、组件细节&#xff0c;还有高级特性、性能优化&#xff0c;关键是项目实践经验的解决方案&#xff0c;都是需要掌握的内容&#xff0c;正所谓打有准备的仗&#xff0c;秒杀面试官&…

Moretl FileSync增量文件采集工具

永久免费: <下载> <使用说明> 我们希望Moretl FileSync是一款通用性很好的文件日志采集工具,解决工厂环境下,通过共享目录采集文件,SMB协议存在的安全性,兼容性的问题. 同时,我们发现工厂设备日志一般为增量,为方便MES,QMS等后端系统直接使用数据,我们推出了增量采…

基于java的客户信息管理系统

摘 要 随着计算机的不断发展和进步&#xff0c;无论是大企业还是小企业&#xff0c;管理客户信息的重要性日益突出&#xff0c;企业需要有一个完善的系统管理。 本系统设计的目的是实现企业客户信息的管理&#xff0c;可以利用先进的计算机技术和网络技术来改变企业客户信息管…

Django 的 `Meta` 类和外键的使用

Django 的 Meta 类和外键的使用 1. Meta 类的常用选项2. 外键&#xff08;ForeignKey&#xff09;字段的使用2.1 基本用法2.2 ForeignKey 参数2.3 外键删除选项&#xff08;on_delete&#xff09; 3. 外键和查询3.1 获取作者的所有书籍3.2 通过书籍查找作者3.3 使用 select_rel…

iOS UIScrollView的一个特性

1如果UIScrollView 的contentSize.height > scrollView.bounds.size.height - scrollView.contentInset.top - scrollView.contentInset.bottom &#xff0c; 则scrollView就可以滚动&#xff0c;否则无法滚动 并且最大的滚动范围就是 contentSize.height - &#xff08; s…

如何有效使用Python爬虫将网页数据存储到Word文档

在数据处理和文档自动化生成的场景中&#xff0c;Python爬虫技术结合文档操作库&#xff08;如python-docx&#xff09;可以实现高效的数据抓取和文档生成。本文将详细介绍如何使用Python爬虫技术抓取网页数据&#xff0c;并将其存储到Word文档中&#xff0c;同时提供完整的代码…

ES filter和post_filter的区别

ES filter和post_filter的区别 在Elasticsearch中&#xff0c;过滤搜索的结果是我们经常要做的事。在我刚开始接触 Elasticsearch&#xff0c;我就了解到有两种可以过滤搜索结果的方法。当时还不是很明白&#xff0c;为什么有的地方用 filter&#xff0c;而有的地方需要使用到…