刷题__1_数组中重复的数字

故障诊断 | 小波变换机械设备外圈振动信号故障诊断 阅读详情

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

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

限制:
2 <= n <= 100000

2.原来简单的想法是:第一反应肯定不能时间复杂度为O(n2),所以想到了用之前的切片。但是没想到数据大得很,所以时间还是没通过。然后又想到先排序在用一次循环。

3.答题
3.1 即排序后查看前后是否有想等的即可。时复O(nlogn),空复O(1)。

class Solution(object):
    def findRepeatNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        a = nums[0]
        for i in range(len(nums)-1):
            if nums[i] == nums[i+1]:
                return nums[i]

3.2 引入一个集合,将当前的元素做判断,是集合里的值就返回,不是集合里就添加到集合里。时间复杂度O(n),空间复杂度O(n)。

class Solution(object):
    def findRepeatNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        le = len(nums)
        table = set()
        for i in range(le):
            if nums[i] in table:
                return nums[i]
            else:
                table.add(nums[i])

这里为什么要用集合而不是列表呢?
因为python中,list对象的存储结构采用的是线性表,其查询复杂度为O(n),而dict、set对象的存储结构采用的是散列表(hash表),其在最优情况下查询复杂度为O(1),所以也可以用字典的。(对我这样的菜鸟而言,大佬应该都知道…)

3.3 用列表也可以,方法类似,不过需要首先将列表所有的元素初始化。时间复杂度O(n),空间复杂度O(n)。

class Solution(object):
    def findRepeatNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        array = [0] * len(nums)
        for i in nums:
            if array[i] > 0:
                return i
            else:
                array[i] = 1

注:部分解答有参考解题区。
来源:力扣(LeetCode)
题目及答案地址:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof

STM32F103VCT6+W5500 TCP 服务端通信 STM32F103VCT6 W5500的TCP连接通讯的程序 阅读详情

相关推荐

多模态RAG实战:为LLM装上视觉之眼,实现图文混合文档智能问答

检索增强生成(RAG)技术通过结合外部知识库,有效缓解了大语言模型(LLM)的幻觉问题,并扩展了其知识边界。其核心原理是将文档切分、向量化后存入向量数据库,在问答时通过语义检索召回相关上下文,辅助LLM生成更精准的答案。这项技术的核心价值在于,它为大模型应用提供了一种低成本、高效率的知识注入与实时更新方案,广泛应用于智能客服、知识库问答、文档分析等场景。随着应用深入,纯文本RAG在处理产品手册、学术论文、设计图纸等富含视觉信息的文档时面临瓶颈。本文聚焦的**多模态RAG**和**视觉理解**技术,正是为了解

weixin_30698527的博客 722

【leetcode刷题笔记】1.数组中重复的数字(简单)

题目如下: 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 第一次尝试: 思路:考虑使用js中的set数据结构来解决,set数据结构类似于数组,但成员的值都是唯一的。 注意: 1.set数据结构保存值是这样的: 因此比较时不可以..

zyc06123的博客 467

华为Atlas200DK实战指南:从零搭建AI开发环境到人像语义分割模型部署

本文提供了一份详尽的华为Atlas 200DK AI开发环境搭建与模型部署实战指南。文章采用合设环境方案,从SD卡准备、系统镜像烧录、网络配置到必备工具安装,逐步引导开发者完成环境搭建。核心部分详细讲解了如何利用华为ATC工具将TensorFlow模型转换为昇腾专用格式,并最终成功编译和运行人像语义分割模型,实现实时人像识别效果。

weixin_29309213的博客 356

力扣刷题笔记丨算法数据结构--查找算法--剑指 Offer 03. 数组中重复的数字

1 题目分析 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 思路:由于只要求输出一个数字,因此只需要用哈希表做一个判断,若已存在则结束循环,输出当前数值,很简单。 2 代码实现 运用哈希表内嵌函数find() class Solution { public: int findRepeatNumber(vector<int>&am

juehuan1999的博客 592

Ubuntu双系统开机黑屏?3分钟搞定NVIDIA显卡驱动冲突(18.04/20.04实测有效)

本文详细解决Ubuntu双系统开机黑屏问题,特别是由NVIDIA显卡驱动冲突引起的故障。提供从临时进入系统到永久安装专有驱动的完整方案,适用于Ubuntu18.04/20.04用户,帮助快速恢复系统并优化显卡性能。

resnet7explorer的博客 309

Python爬虫-汽车之家各车系月销量榜数据

本文是该专栏的第41篇,后面会持续分享python爬虫干货知识。本文以某汽车平台为例,基于python采集该平台“各车系月销量”的榜单数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1619

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

// 示例 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 /** * 执行用时: 108 ms * 内存消耗: 44.4 MB */ var findRepeatNumber = function(nums) { const statistics = {}; for (let i=0; i<nums.length; i++) { if (statistics[nums[i]]) { return nums[i]

weixin_44240581的博客 1211

SwiftUI 5 教程之 SwiftData使用入门(教程含源码)

对我来说,记住日期很难。是的,您可以设置该日期的提醒,但该提醒无法产生紧迫感。让我们创建一个应用程序,我们可以在其中添加将来发生的事件。如果我们可以在主应用程序上看到所有即将发生的活动,那就太好了。也许将它们添加到小部件上以营造紧迫感。对于任何事件,我们需要跟踪哪些事情?我们将在下一篇文章中添加更多属性,其中我们将讨论迁移。现在,这就是我们所需要的。开始吧。

iCloudEnd的博客 987

数组中重复的数字(入门算法07)

题目:找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 解题思路: 其实很简单先排序,然后用一个for比较相邻两数是否相等就好了。 class Solution { public int findRepeatNumber(int[] nums) {

越努力越幸运的博客 272

RT-DETR-R18 上下文信息融合:引入全局特征提升遮挡目标检测

"""轻量化全局特征提取器(2层Transformer编码器)"""# 特征投影层(将多尺度特征统一维度)# 轻量化Transformer编码器(分组卷积优化)# 全局特征池化(输出 [bs, hidden_dim])# local_features: 多尺度特征列表 [C3, C4, C5],各 [bs, c, h, w]# 统一投影至 hidden_dim 并展平为序列# Transformer编码全局上下文# 全局池化得到全局向量。

走向CTO的路上... 495

在鸿蒙中使用AVPlayer完成视频的播放【坚果派】

播放的全流程包含:创建AVPlayer,设置播放资源和窗口,设置播放参数(音量/倍速/缩放模式),播放控制(播放/暂停/跳转/停止),重置,销毁资源。5.准备播放:调用prepare(),AVPlayer进入prepared状态,此时可以获取duration,设置缩放模式、音量等。8.退出播放:调用release()销毁实例,AVPlayer进入released状态,退出播放。6.视频播控:播放play(),暂停pause(),跳转seek(),停止stop() 等操作。今天我们来看一下视频如何正常播放。

坚果的博客 4056

LeetCode数组(三)

面试题03.数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 思路:先将数组排序,遍历数组比较当前元素和后一个元素是否相等,相等则说明重复跳出循环直接返回当前元素值。 class Solution { public in...

qq_45111347的博客 296

OpenClaw 股票自动化交易实践指南:从原理到实战的完整技术路径

量化交易策略的开发是一个系统工程,需要综合运用金融知识、编程技能和数据分析能力。OpenClaw通过引入提示词工程技术,大大降低了策略开发的技术门槛,使得更多投资者能够参与到量化交易中来。但技术只是工具,真正决定策略成败的是对市场的深刻理解和严格的风险管理。本章系统介绍了OpenClaw环境下的策略开发方法,从提示词驱动到传统代码实现,从参数优化到回测验证,涵盖了策略开发的完整流程。提示词驱动方式适合快速验证交易想法,传统代码方式适合实现复杂的定制逻辑,两种方式可以协同使用,发挥各自的优势。

lovely_yoshino的博客 5990

牛客网刷题1——数组中重复的数字

题目: https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 思路: 1.把当前序列当成是一个下标和下标对应值是相同的数组; 2.遍历数组,判断当前位的值和下标是否相等: 2.1. 若相等,则

qq_20464593的博客 216

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

算法刷题【1】数组中的重复数字

题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 返回描述: 如果数组中有重复的数字,函数返回true,否则返回false。 如果数组中有重复的数字,把重复的数字放到参数duplication[0]中。(ps:duplication已经初始化,可以直接赋值使用。) 我的第一次思路:两层fo

layfolk的博客 289

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

算法刷题 week1 找出数组中重复的数字&不修改数组找出重复的数字

找出数组中重复的数字&不修改数组找出重复的数字

VengaZ的学习博客 311

剑指offer 刷题 1 (03:数组中重复的数字)

1:指针基本知识 *a=&b : 表示指针a 代表b 的地址,*a 则表示b的数值; *&a=25 表示将a的值赋值为25

weixin_42528089的博客 2246

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

题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路: 代码: 代码中给了三个参数,值得注意的是第三个参数是储存重复数字的数组,大小为1 public cla...

逆水行舟,不进则退 2789

leetcode刷题笔记(1)找出数组中重复的数字

找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 限制:2 <= n <= 100000 可运用哈希表法和原地交换法 int findRepeatNumber(vector<int>& nums) { un.

Sychen__的博客 439

《剑指offer刷题笔记》 1、找出数组中重复的数字 【c++详细题解】

题目: 给定一个长度为 n的整数数组 nums,数组中所有的数字都在0∼n−1 的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 注意:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1; 样例: 给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。 返回 2 或 3。 思路1: 时间复杂度O(n)O(n)O(n) 使用unordered_set 代码1: class Solution

林深不见鹿 的博客 442

[剑指offer刷题] - 数组中重复的数字、在排序数组中查找数字、0~n-1中缺失的数字 (二分专场)

题目[题目及部分解法来自LeeCode] 题目一:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 solution one : 利用HashSet,由于hashSet

qq_36657788的博客 375

剑指offer, Python刷题 day1(03.数组中重复的数字)

""" 剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了, 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 2 <= n <= 100000 solution: 官方题解里面的暴力解法能解出答案,但是感觉没任何训练效果。 在这里可以使用set的特性,即...

abc2345abc的博客 284

力扣刷题笔记day7(数组中重复的数字+在排序数组中查找数字+0~n-1中缺失的数字)

数组中重复的数字+在排序数组中查找数字+0~n-1中缺失的数字

前端小白 550

记录自己刷题过程day1--剑指offer03--数组中重复的数字

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

xxcny的博客 103

21天刷题计划之6.1—数组中重复的数字(Java语言描述)

题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路分析: 遍历数组找到相同的两个输出即可。 public class Solution { // Para...

justlikeu777的博客 167

剑指offer刷题day4|03. 数组中重复的数字,53 - I. 在排序数组中查找数字 I,53 - II. 0~n-1中缺失的数字

【代码】剑指offer刷题day4|03. 数组中重复的数字,53 - I. 在排序数组中查找数字 I,53 - II. 0~n-1中缺失的数字。

qq_45948139的博客 135

2021-11-29每日刷题打卡

2021-11-29每日刷题打卡 力扣——剑指offer 剑指 Offer 03. 数组中重复的数字 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 hash计算nums的数,当有出现次数大于1的数时返回那个数。 class Solution { public:

fnmdpnmsl的博客 244
上一篇: C语言-结构体定义的几种方式
下一篇: 刷题__2_二维数组中的查找
please_say_d
博客等级 码龄7年 13粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值