剑指offer--数组中重复的数字

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

算法1.排序,然后遍历,时间复杂度O(nlogn),空间O(logn)
int Cmp_int(const void* vp1, const void* vp2)
{return *(int*)vp1 - *(int*)vp2;
}
int findRepeatNumber1(int* nums, int numsSize)
{qsort(nums,numsSize,sizeof(int),Cmp_int);//调用排序算法,需要引用stdlib.hfor (int i = 0; i+1 < numsSize; i++){if (nums[i] == nums[i + 1])return nums[i];}return -1;
}
算法2:利用哈希表,时间O(n),空间O(n)
int findRepeatNumber(int* nums, int numsSize)
{int* arr = (int*)malloc(numsSize * sizeof(int));int i;int m;for (i = 0; i < numsSize; i++)arr[i] = -1;//-1表示无效值for (i = 0; i < numsSize; i++){m = nums[i];if (arr[m] != -1)//找到了{free(arr);return m;}arr[m] = m;}free(arr);return -1;//没有重复的
}
算法3.数据归位(把m存放到nums[m]位置)
int findRepeatNumber3(int* nums, int numsSize) //O(n),O(1){int m; for (int i = 0; i < numsSize; i++) {while (nums[i] != i)//当前位置,存放的不是当前数据,交换 {m = nums[i]; if (m == nums[m])//找到了 return m; nums[i] = nums[m]; nums[m] = m; }}return -1;
}int main()
{int nums[] = { 2, 3, 1, 0, 2, 5, 3 }; printf("%d\n", findRepeatNumber(nums,sizeof(nums)/sizeof(nums[0])));return 0;
}
本篇完!
相关文章:
剑指offer--数组中重复的数字
一.题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 算法1.排序,然后遍历,时间复杂度O(nlogn),空…...
【THM】SQL Injection(SQL注入)-初级渗透测试
简介 SQL(结构化查询语言)注入,通常称为 SQLi,是对 Web 应用程序数据库服务器的攻击,导致执行恶意查询。当 Web 应用程序使用未经正确验证的用户输入与数据库进行通信时,攻击者有可能窃取、删除或更改私人数据和客户数据,并攻击 Web 应用程序身份验证方法以获取私有数据…...
数码论坛系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)
本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…...
vue3性能提升主要通过哪几方面?
📝个人主页:爱吃炫迈 💌系列专栏:Vue 🧑💻座右铭:道阻且长,行则将至💗 文章目录 编译优化diff算法优化提取动态节点 静态提升预字符串化缓存内联事件处理函数SSR优化 源…...
跨境电商IP防关联是什么?有什么作用?
做跨境电商的朋友应该都知道IP防关联这个词,那么为何IP需要防关联呢?今天为大家来解答这个问题。 跨境电商IP防关联是指在跨境电商运营中,通过采取一系列技术手段,确保每个跨境电商账号使用独立的IP地址,以避免账号之间因为IP地址…...
git仓库太大只下载单个文件或文件夹
有没有这样的苦恼:仓库太大,只想下载其中某些文件(夹)? 一招解决: ./down_folder_from_git.sh https://github.com/facebook/infer main Makefile FILES.md scripts examples ./down_folder_from_git.sh https://github.com/Ten…...
OpenHarmony实战:RK3568 开发板镜像烧录指南
前言 烧录开发板是每个开发者的必修课,每次对系统的修改务必进行烧录测试,确保修改正确和不会引入新问题。 本文基于 Windows10,以 RK3568 开发板为例,指导如何烧录 OpenHarmony 镜像,镜像也叫固件。Hihoopÿ…...
Asp.net Core 中一键注入接口
Asp.net Core 中一键注入接口 前言准备开始使用 前言 在之前开发Asp.Net Core程序时遇到接口需要一个一个的注入到Services中,当有非常多的接口需要注入时会显得代码成为了一座山,这里记录一下如何通过接口的命名一键自动注入. 准备 IDE: Visual studio 2022 .Net版本:.Net …...
怎么让ChatGPT批量写作原创文章
随着人工智能技术的不断发展,自然语言处理模型在文本生成领域的应用也日益广泛。ChatGPT作为其中的佼佼者之一,凭借其强大的文本生成能力和智能对话特性,为用户提供了一种高效、便捷的批量产出内容的解决方案。以下将就ChatGPT批量写作内容进…...
【SqlServer】Alwayson收缩日志
Alwayson收缩日志 压缩失败直接压缩压缩失败 直接压缩 加入高可用组之后,不能设置成简单模式。 USE [databasename] CHECKPOINT DECLARE @bakfile nvarchar(100) SET @bakfile=D:\data...
视觉里程计之对极几何
视觉里程计之对极几何 前言 上一个章节介绍了视觉里程计关于特征点的一些内容,相信大家对视觉里程计关于特征的描述已经有了一定的认识。本章节给大家介绍视觉里程计另外一个概念,对极几何。 对极几何 对极几何是立体视觉中的几何关系,描…...
数据可视化高级技术(Echarts)
目录 (一)数据可视化概念及Echarts基础知识 数据可视化的好处: 数据可视化的目标 数据可视化的基本流程 (二)数据图表 类别比较图表: 数据关系图表: 数据分布图表: 时间序列…...
设计模式——行为型——责任链模式Chain Of Responsibility
请求类 public class ApproverRequest {private int type;//请求批准的类型private float price;//请求的金额private int id;//请求的编号 } 审批人抽象类 public abstract class ApproverPerson {protected ApproverPerson next;protected String name;//审批过程public a…...
设计模式之工厂方法模式精讲
工厂方法模式又叫虚拟构造函数(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。 工厂模式可以分为简单工厂…...
JS实现省市区三级联动(json假数据)
省市级三级联动通常指的是在用户界面上,用户可以通过选择省份,然后基于所选择的省份选择对应的城市,最后基于所选择的城市选择对应的区县。这种联动效果在很多应用中都有出现,例如电商平台的收货地址选择、政务服务的地区选择等。…...
Fastjson配置消息转换器(时间格式问题)
问题: 我们可以看见,日期的格式有点问题。 由于ArticleListVO类的createTime成员变量是Date类型,默认是由java的Jackson来处理,使用 ISO-8601 规范来处理日期时间格式。ISO-8601 是一种国际标准的日期时间表示法,例如&…...
安卓Android 架构模式及UI布局设计
文章目录 一、Android UI 简介1.1 在手机UI设计中,坚持的原则是什么1.2 安卓中的架构模式1.2.1 MVC (Model-View-Controller)设计模式优缺点 1.2.2 MVP(Model-View-Presenter)设计模式MVP与MVC关系: 1.2.3 MVVM(Model—View—ViewModel ) 设计模式1.2.4 …...
基于Spring Boot的在线学习系统的设计与实现
基于Spring Boot的在线学习系统的设计与实现 摘 要 在线学习系统是以大学传统线下教学方式不适应信息技术的迅速发展为背景,提高学习效率,解决传统教学问题,并且高效的实现教学信息化的一款软件系统。为了更好的实现对于教学和学生的管理&a…...
C++中重载和重写的区别
重载 是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。 #include<bits/stdc.h>using namespace std;cl…...
二叉树 - 栈 - 计数 - leetcode 331. 验证二叉树的前序序列化 | 中等难度
题目 - 点击直达 leetcode 331. 验证二叉树的前序序列化 | 中等难度1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理方法1:栈方法2:计数 3. 时间复杂度 3. 代码实现方法1:栈方法2:计数 leetcode 331. 验证二…...
告别双系统!Win11下用WSL2直通NVIDIA显卡跑PyTorch,保姆级配置避坑指南
告别双系统!Win11下用WSL2直通NVIDIA显卡跑PyTorch,保姆级配置避坑指南 在深度学习开发中,Linux环境往往能提供更高效的GPU计算体验,但日常办公和娱乐又离不开Windows的便利。传统解决方案是安装双系统,频繁重启切换不…...
5个场景告诉你:为什么你需要这款免费的窗口分辨率神器
5个场景告诉你:为什么你需要这款免费的窗口分辨率神器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾遇到过这些困扰?游戏内分辨率选项有限,无法满足你对极致画质的…...
FPGA频率测量实战:从原理到实现,三种方法深度解析与选型指南
1. FPGA频率测量的工程意义与挑战 在数字电路设计中,频率测量就像给信号"把脉",是评估系统健康状况的基础操作。想象你正在开发一款智能温控器,需要精确测量风扇转速信号;或者设计无线通信模块,要监控本振频…...
从面试旅行到EDA设计:工程思维如何应对混乱与不确定性
1. 一次糟糕的面试旅行:从混乱到反思的工程思维那天早上醒来,看到闹钟指针的那一刻,我就知道一切都乱套了。作为一名在谢菲尔德攻读控制工程学士学位的学生,我本该精神抖擞地前往伦敦郊区参加人生中第一次工业实习面试。然而&…...
从ENVI SARscape到SNAP:手把手教你迁移哨兵1 GRD数据预处理流程(含避坑指南)
从ENVI SARscape到SNAP:哨兵1 GRD数据预处理全流程迁移实战 当雷达遥感领域的工具生态逐渐向开源化倾斜,许多长期依赖ENVI SARscape的研究者开始面临工具迁移的挑战。本文将聚焦哨兵1号GRD数据的预处理流程,为需要从商业软件转向开源工具的用…...
W4A4量化技术:OSC框架如何实现高效LLM部署
1. OSC框架:硬件高效的W4A4量化革命在大型语言模型(LLM)部署领域,4-bit量化(W4A4)正成为突破算力瓶颈的关键技术。传统8-bit量化虽已成熟,但当我们将精度压缩至4-bit时,激活张量中的异常值(Outliers)会像"黑洞"般吞噬有…...
列车主动悬架超磁致伸缩作动器动力学【附模型】
✨ 长期致力于超磁致伸缩作动器、主动悬架、动力学建模、特性分析、Simulink仿真研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)非均匀磁场下的多物理…...
软件设计原则之DIP依赖倒置原则
(DIP) 依赖倒置原则 Dependency Inversion Principle核心原则抽象不应该依赖细节;细节应该依赖于抽象。场景描述在一个应用程序 Application 中需要使用到数据库,比如我们此时需要使用到 Mysql 数据库。Mysql 数据库分别具有连接,断开关闭&am…...
ClickHouse性能优化:OLAP数据库实战,让查询飞起来
**作者:洛水石** | **更新日期:2026-05-11** | **标签:ClickHouse | OLAP | 数据库优化 | 大数据**前言上个月,运营同学找我抱怨:每天凌晨的报表查询要等5分钟才能出来,数据量大的时候直接超时。作为DBA&am…...
如何轻松管理你的PS4游戏存档:Apollo工具终极指南
如何轻松管理你的PS4游戏存档:Apollo工具终极指南 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 你是否曾经遇到过这样的困扰?辛苦打了几十个小时的游戏进度,因为PS4硬…...
