剑指offer03:数组中重复的数组---leetcode:LCR 120. 寻找文件副本

ops/2024/9/23 4:50:36/

设备中存有 n 个文件,文件 id 记于数组 documents。若文件 id 相同,则定义为该文件存在副本。请返回任一存在副本的文件 id

示例 1:

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

提示:

  • 0 ≤ documents[i] ≤ n-1
  • 2 <= n <= 100000

思路,排序之后再看,原本以为是要返回重复的数组,打算用一个空数组做标记,结果只需返回一个重复的即可。

使用排序后的数组,找挨着的两个即可。排序的时间复杂度是O(nlogn),而找到重复元素的时间复杂度是O(n)。

int compare(const void* a,const void* b){return *(int*)a-*(int*)b;
}
int findRepeatDocument(int* documents, int documentsSize) {qsort(documents,documentsSize,sizeof(int),compare);for(int i=0;i<documentsSize-1;i++){int j=1;if(documents[i]==documents[i+j]){return documents[i];}}return 0;
}

使用哈希,使用数组中的值作为下标,进行标记。防止数组中值溢出,使用取余的办法。

int findRepeatDocument(int* documents, int documentsSize){int* hash=(int*)malloc(documentsSize*sizeof(int));for (int i = 0; i < documentsSize; i++) {hash[i] =-1;}for(int i = 0; i < documentsSize; i++){int p=documents[i]%documentsSize;if(hash[p]!=-1){return documents[i];}hash[documents[i]%documentsSize]=documents[i];}return 0;
}


http://www.ppmy.cn/ops/4620.html

相关文章

【Camera Sensor Driver笔记】二、点亮指南之Sensor Module XML

Camera Sensor module XML详解&#xff1a; cameraId 与 slot id 一一对应 &#xff08;即&#xff1a;dtsi中相对应的sensor的 cell-index &#xff09; moduleName 模组厂名称 sensorName sensor 名称 actuatorName 马达名称 oisName …

vue实现文字转语音的组件,class类封装,实现项目介绍文字播放,不需安装任何包和插件(2024-04-17)

1、项目界面截图 2、封装class类方法&#xff08;实例化调用&#xff09; // 语音播报的函数 export default class SpeakVoice {constructor(vm, config) {let that thisthat._vm vmthat.config {text: 春江潮水连海平&#xff0c;海上明月共潮生。滟滟随波千万里&#xf…

JEECG表格选中状态怎么去掉

官网代码&#xff08;在取消选中状态的时候不生效&#xff09; rowSelection() {return {onChange: (selectedRowKeys, selectedRows) > {console.log(selectedRowKeys: ${selectedRowKeys}, selectedRows: , selectedRows);},getCheckboxProps: record > ({props: {disa…

渐变效果-gradient(秒懂网页中的渐变效果)

目录 一、渐变介绍 1.概念 2.特点 3.功能 4.好处 5.高级特性 二、渐变用法 1.线性渐变 1.1 线性渐变-从上到下&#xff08;默认情况&#xff09; 1.2 线性渐变-从左到右 1.3 线性渐变-对角 1.4.使用角度 1.5.使用多个颜色节点 1.6,使用透明度 1.7.重复的线性渐变 2.…

【小贴士|Unity】华佗热更版本控制配置

现在越来越多的新项目选择使用HybridCLR&#xff0c;而不是以前的Lua。也不妨有的项目会配置打包机器人以及版本控制&#xff0c;但是这个版本控制的配置还真需要注意一些。&#xff08;因为我就踩坑了&#xff09; 如图所示&#xff0c;当你第一次执行HybridCLR/Generate/All后…

NLP预训练模型- GPT-3学习指南与学习总结案例

NLP预训练模型GPT-3学习指南与学习案例 学习指南 GPT-3&#xff0c;作为OpenAI开发的一种先进的语言生成模型&#xff0c;具有强大的语言理解和生成能力。为了有效地学习和应用GPT-3&#xff0c;以下是一些建议的学习指南&#xff1a; 理解模型原理&#xff1a;首先&#xf…

Nginx出现403 Forbidden、404 Not Found错误的解决方案

一、Docker创建Nginx容器 Docker命令 docker run -d \--name nginx \-p 80:80 \-v /root/nginx/dist:/usr/share/nginx/html \-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \nginxnginx.conf worker_processes 1;events {worker_connections 1024; }http {include …

SQL序列

序列 SEQUENCE 序列是Oracle提供的一组能够自动增长的序号&#xff0c;一般是提供主键值用的。 序列的创建 CREATE SEQUENCE 序列名 ----可以结束了START WITH n ----初始值 n&#xff0c;如果这句话不写&#xff0c;默认是1INC…