剑指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; 
}

本篇完!

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

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

相关文章

【力扣一刷】代码随想录day28(93.复原IP地址、78.子集、90.子集II )

目录 【93.复原IP地址】中等题&#xff08;偏难&#xff0c;坑很多&#xff09; 【78.子集】中等题&#xff08;偏简单&#xff09; 【90.子集II】中等题 【93.复原IP地址】中等题&#xff08;偏难&#xff0c;坑很多&#xff09; 思路&#xff1a;以101023为例子 1、将题目…

输出100~200之间的素数(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现素数判断函数&#xff1b; int Prime(int number) {//初始化变量值&#xff1b;int divided 2;int JudgementCondition 0;//循环判断素数&#xff1b;wh…

(C)1007 素数对猜想

1007 素数对猜想 问题描述 输入样例&#xff1a; 20 输出样例&#xff1a; 4 解决方案&#xff1a; #include<stdio.h> #include<string.h> #include<math.h> int main(){int n,d;int a[100000];int flag,jishu0;scanf("%d",&n);memset(a,-1,…

基于51单片机甲醛浓度检测设计

基于51单片机甲醛浓度检测设计 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff0b;PCB&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.甲醛浓度数据经过单片机处理&#xff0c;由LCD1602实时显示。 2.可通过按键设置甲醛报警阈值&#xff…

RK3568驱动指南|第十四篇 单总线-第158章DS18B20编写字符设备驱动框架

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

鸿蒙原生应用开发-网络管理HTTP数据请求

一、场景介绍 应用通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 涉及的接口如下表&#xff0c;具体的…

鸿蒙OS元服务开发:【WebGL网页图形库开发概述】

WebGL的全称为Web Graphic Library(网页图形库)&#xff0c;主要用于交互式渲染2D图形和3D图形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES&#xff0c;可以在HTML5的canvas元素对象中使用&#xff0c;无需使用插件&#xff0c;支持跨平台。WebGL程序是由JavaScr…

《信息技术服务 智能运维 第2部分:数据治理》国家标准2024年第一次线下编写会议成功召开

2024年3月13日~15日&#xff0c;由运维数据治理国标编制组主办的运维数据治理国家标准2024年第一次编写工作会议在上海成功召开。 本次会议由云智慧&#xff08;北京&#xff09;科技有限公司承办&#xff0c;来自南网数字集团信通公司、太保科技、平安银行、广发银行、广东农…

什么是AIGC,AIGC的应用领域有哪些,以及对AIGC的未来展望有什么值得关注的方向

AIGC:人工智能生成内容的深度解析 在数字技术的浪潮中,AIGC(ArtificialIntelligenceGeneratedContent,人工智能生成内容)逐渐崭露头角,成为继专业生产内容(PGC)和用户生产内容(UGC)之后的新型内容创作方式。它不仅改变了内容生产的传统模式,更在多个行业中展现出…

QA测试开发工程师面试题满分问答6: 如何判断接口功能正常?从QA的角度设计测试用例

判断接口功能是否正常的方法之一是设计并执行相关的测试用例。下面是从测试QA的角度设计接口测试用例的一些建议&#xff0c;包括功能、边界、异常、链路、上下游和并发等方面&#xff1a; 通过综合考虑这些测试维度&#xff0c;并设计相应的测试用例&#xff0c;可以更全面地评…

CCF-B推荐会议 ICSME’24 4月11日截稿 速来参与

会议之眼 快讯 第40届ICSME 2024 (IEEE International Conference on Software Maintenance and Evolution)即IEEE软件维护与发展国际会议将于 2024 年 10月6日-11日在美国弗拉格斯塔夫阿兹举行&#xff01;ICSME是学术界、工业界和政府研究人员和从业者的首要国际论坛&#x…

阿里AI编码助手“通义灵码”安装及使用

1.介绍 “通义灵码”是一款基于阿里云通义代码大模型打造的智能编码助手&#xff0c;产品于2023年10月31日云栖大会上&#xff0c;正式对外发布。 核心使用场景&#xff1a;代码智能生成和研发智能问答。 主要功能点&#xff1a; &#xff08;1&#xff09;行级/函数级实时…

PSDK 102S V3:航测领域的革新者

在航测领域&#xff0c;精确、高效的数据获取一直是行业追求的目标。PSDK 102S V3&#xff0c;作为SHAR三赛尔推出的一款高性能倾斜摄影相机&#xff0c;凭借其先进的技术和卓越的性能&#xff0c;正在成为航测领域的革新者。 自研三轴智能稳定云台&#xff1a;PSDK 102S V3配备…

Canal1.1.5整Springboot在MQ模式和TCP模式监听mysql

canal本实验使用的是1.1.5&#xff0c;自行决定版本&#xff1a;[https://github.com/alibaba/canal/releases] canal 涉及的几个角色 canal-admin&#xff1a;canal 后台管理系统&#xff0c;管理 canal 服务canal-deployer&#xff1a;即canal-server&#xff08;客户端&…

市场瞭望杂志市场瞭望杂志社市场瞭望编辑部2024年第2期目录

福山福水 拼经济&#xff0c;2024福建这样布局 林先昌 ;谢何平 ;余燕芳 ;陈强 ;王茜 ;刘星; 3-5 财经搜要 人民银行宣布“降准定向降息” 6《市场瞭望》投稿&#xff1a;cnqikantg126.com 两部门印发《意见》促进制造业中试创新发展 6 首部《中国企业信用年鉴》…

AI提速 OpenAI 新模型GPT-5今年上线?

这两天&#xff0c;有关OpenAI新模型 GPT-5的消息又多了起来。有知情人士称&#xff0c;OpenAI将在今年年中的某个时候发布GPT-5&#xff0c;很可能是在今年夏天期间。OpenAI CEO 萨姆奥特曼在一次播客采访中透露“GPT-5的智能水平得到提升”。 有趣的是&#xff0c;播客的主理…

阿里云免费证书过期更换证书操作步骤:

阿里云证书过期更换证书操作步骤&#xff1a; 登录阿里云控制台&#xff0c;搜索ssl证书&#xff0c;选择免费证书 点击创建证书&#xff0c;输入域名点确定&#xff0c;然后点击证书申请 选择文件验证方式&#xff0c;提交申请 下载验证文件fileauth.text到&#xff0c;解压后…

OpenHarmony实战:命令行工具hdc安装应用指南

一、工具概述 hdc&#xff08;OpenHarmony Device Connector&#xff09;是为开发人员提供的用于设备连接调试的命令行工具&#xff0c;该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHarmony 设备&#xff08;或模拟器&#xff09;进行连接调试通信。 简言之&#xf…

XenCenter 2024 导出虚拟机

选择导出 选择需要导出的虚拟机 导出位置&#xff0c;导出格式&#xff0c;名称 EULA 文档&#xff0c;根据自己需求配置 OVA是否需要加密验证&#xff0c;自己需要看&#xff0c;是否单独的OVA 确认导出配置&#xff0c;等待导出完成。 本地目录查看导出完成

Isaac sim的一些例程

一、standalone_examples 里面有AMR自主导航的例子&#xff0c;jetbot强化学习的例子等等&#xff1b; 二、 Simulated -> Demo Scenes &#xff08;physics demo scenes&#xff09; 这个里面有很多物理场景演示&#xff0c;如各种形态车辆&#xff0c;关节机器人&#xf…