32--数组中重复的数字

1. 问题描述

找出数组中重复的数字。

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

示例 1:

输入:[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3

2. 解题详情

由于只需要找出数组中任意一个重复的数字,因此遍历数组,遇到重复的数字即返回。为了判断一个数字是否重复遇到,使用集合存储已经遇到的数字,如果遇到的一个数字已经在集合中,则当前的数字是重复数字。

伪代码如下:

1.初始化集合为空集合,重复的数字 repeat = -1;
2.遍历数组中的每个元素:
3.将该元素加入集合中,判断是否添加成功;
4.如果添加失败,说明该元素已经在集合中,因此该元素是重复元素,将该元素的值赋给 repeat,并结束遍历。

时间复杂度:O(n)O(n)。
遍历数组一遍。使用哈希集合(HashSet),添加元素的时间复杂度为 O(1)O(1),故总的时间复杂度是 O(n)O(n)。
空间复杂度:O(n)O(n)。不重复的每个元素都可能存入集合,因此占用 O(n)O(n) 额外空间。

class Solution {public int findRepeatNumber(int[] nums) {Set<Integer> set = new HashSet<Integer>();int repeat = -1;for (int num : nums) {if (!set.add(num)) {repeat = num;break;}}return repeat;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实习期间的一些思考整理(3)2018.4.12~4.13

青云诀游戏体验日报-2018.4.12 今日关键点&#xff1a;核心玩法 青云诀的核心玩法是“战斗”、“成长”、“探索”&#xff08;这三点也是RPG类型的要素&#xff09;&#xff0c;侧重于成长。 我是这样想的&#xff0c;要想找出核心玩法是什么&#xff0c;就要看哪些玩法没了&a…

整理的最全 python常见面试题(基本必考)

访问flyai.club&#xff0c;一键创建你的人工智能项目作者&#xff1a;大蛇王https://blog.csdn.net/t8116189520/article/details/801655891、大数据的文件读取① 利用生成器generator②迭代器进行迭代遍历&#xff1a;for line in file2、迭代器和生成器的区别1)迭代器是一个…

Nginx安装手册(摘自入云龙老师教案,亲测可用)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Nginx安装手册 一、 nginx安装环境 nginx是C语言开发&#xff0c;建议在linux上运行&#xff0c;本教程使用Centos6.5作为安装环境。 …

33--二维数组中的查找

1.问题描述 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右递增的顺序排序&#xff0c;每一列都按照从上到下递增的顺序排序。请完成一个函数&#xff0c;输入这样的一个二维数组和一个整数&#xff0c;判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下&…

XML Schema是什么

XML Schema 本身也是一种XML构造&#xff0c;它用来描述[哪个元素&#xff0c;在什么时候出现]&#xff0c;[该元素具有什么样的属性]等等&#xff0c;也就是说&#xff0c;XML Schema是对XML的树形构造加以描述说明的一种语言。原本&#xff0c;使用DTD对XML的树形构造加以描述…

js之base64上传图片

首先要搭建好springmvc&#xff0c;详见https://www.cnblogs.com/zzb-yp/p/9295397.html 整体思路&#xff1a;前端代码包括显示和传参&#xff08;这里的参数主要就是图片的base64字符串&#xff09;&#xff0c;显示主体部分是type“file”类型的input组件和一个提交按钮 …

一些常用软件的网络端口协议分类介绍

最近有朋友请教我有关实现校园局域网视频功能软件的编写问题&#xff0c;涉及到端口有关的知识&#xff0c;自己查了一些资料&#xff0c;发现这篇文章总结得比较不错&#xff0c;常用软件涵盖得比较丰富&#xff0c;很实用&#xff0c;需要用到的时候可以查阅。于是决定将这篇…

WPF 使用皮肤影响按钮自定义

在WPF项目中使用了 Theme的皮肤后&#xff0c;发现自定义的按钮全部都是 皮肤里面的样式&#xff0c;如下图&#xff1a; 要自定义样式&#xff0c;只有不给按钮使用皮肤样式。 如果想给某一个控件使用样式&#xff0c;在前端Xaml的控件中&#xff0c;设置一下属性即可&#xf…

各种数据库对应的jar包、驱动类名和URL格式

见&#xff1a;http://blog.csdn.net/xuguiyi100/article/details/7970379 maven/Java/web/bootstrapQQ群&#xff1a;566862629。希望更多人一起帮助我学习。 1.1. 各种数据库对应的jar包 具体如下&#xff1a; 数据库类型 对应的Jar文件 Oracle 8i classes12.zip 或…

34--替换空格

1.问题描述 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。 示例 1&#xff1a; 输入&#xff1a;s “We are happy.” 输出&#xff1a;“We%20are%20happy.” 2.解题思路 由于每次替换从 1 个字符变成 3 个字符&#xff0c;使用字符数组可方…

HTML的xmlns的作用

作用&#xff1a;由于xml允许定义自己的标记&#xff0c;但你定义的标记和其他人定义的标记有可能相同&#xff0c;但表示不同的含义。当文档交换或者共享的时候就容易产生错误。为避免这种错误产生&#xff0c;xml采用名字空间声明&#xff0c;允许你通过一个网址来识别你的标…

树链剖分 讲解+模板+习题

今天我们来讲一下树链剖分 树链剖分是什么&#xff1f; 树链剖分是一种用来维护树上路径信息的在线方法&#xff0c;可以处理在线。 通常通过一种方法&#xff0c;将一棵树剖分成若干条链&#xff0c;然后通过数据结构&#xff08;线段树&#xff0c;BIT等&#xff09;去维护。…

navicat 批量插入 测试数据

1. 前言 遇到线上大sql执行较慢, 10s, 做优化改进时&#xff0c;首先想到的是在本地造出一个类似的库环境&#xff0c;先本地实验。 然后往表中创建大量数据... 2. 方案 利用mysql函数来插入大量数据 代码 BEGIN#Routine body goes here... DECLARE id int; DECLARE driverid …

互联网产品用户体验设计的三大定律

好友发过来一PPT&#xff0c;文件名是互联网产品的体验设计&#xff0c;认真看完&#xff0c;收获颇多&#xff0c;其中印象最深刻的是用户体验可用性的三大定律&#xff0c;正好FasterSoft正在打造互联网精品平台iWorld&#xff0c;最需要的时候好东西就上门来了&#xff0c;这…

oracle 对应的JDBC驱动 版本

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Oracle版本jdk版本推荐jar包备注Oracle 8iJDK 1.1.xclasses111.zip Oracle 8iJDK 1.1.xclasses12.zip Oracle 9iJDK 1.1.xclasses111.ja…

JSP特点

1.JSP文件必须在JSP服务器内运行。 2.JSP文件必须生成servlet才能执行。 3.JSP页面的第一个访问者速度慢&#xff0c;因为需要编译生成Servlet。 4.JSP不需要专门的客户端&#xff0c;也不需要java运行环境&#xff0c;因为JSP输出到页面是标准的HTML文件。

35--用两个栈实现队列

1.问题描述 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 ) 示例 1&#xff1a; 输入&#xf…

如何open一个新tab页面

打开新tab页的两种方式 1 a标签 function openwin(url) {var a document.createElement("a");a.setAttribute("href", url);a.setAttribute("target", "_blank");a.setAttribute("id", "camnpr");document.body.…

Linux中打开文件管理器的命令

在Mac中&#xff0c;我们可以使用open命令&#xff0c;在终端打开指定目录下的文件管理器&#xff0c;在Linux中&#xff0c;同样可以使用类似的命令&#xff1a;nautilus。 转载于:https://www.cnblogs.com/chaoguo1234/p/9446106.html

final类与方法

final类---不可被继承。 final方法---不可被覆盖。