C语言 数组中重复的数字分析及方法

发布时间 - 2026-01-11 00:14:42    点击率:

C语言 数组中重复的数字解决方法:

题目:在一个长度为n的数组里的所有数字都在0-n-1的 范围内。数组中某些数字是重复的,但是不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3.

解法1:对于数组进行排序,之后对于已经排序的数组进行遍历便可知道数组中重复的数字。

时间复杂度;O(nlogn);

解法2:建立一个大小为O(N)的哈希表,遍历数组中的元素并判断是否存在于哈希表中。若不存在于哈希表中,将这个元素加入哈希表之中并且继续扫描,若这个元素存在于哈希表中,则:找到了数组中重复的一个数字;

时间复杂度:O(N),空间复杂度:O(N);

解法3:对于给定的数组进行重排。对于下标为i的元素:如果a[i] == i,扫描下一个元素;如果不相等将a[i]与a[a[i]]进行比较,若是相等则找到了一个重复的数字,若没有,那么对于数字进行交换,依次进行。


int DuplicateInArray(int arr[],int size) 
{ 
  int i=0; 
  while(i<size) 
  { 
    if(arr[i] == i) 
      ++i; 
    else 
    { 
      if(arr[i] != arr[arr[i]]) 
      {swap(arr[i],arr[arr[i]]);} 
      else 
      {return arr[i];} 
    } 
  } 
  return -1; 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C语言  # 数组中重复的数字  # C数组中重复的数字解决办法  # C语言判定一棵二叉树是否为二叉搜索树的方法分析  # C语言变量类型的深入分析  # C语言数据结构中二分查找递归非递归实现并分析  # 分析C语言一个简单程序  # C语言double和float 实例分析  # C语言求解最长公共子字符串问题及相关的算法分析  # 简单分析C语言中指针数组与数组指针的区别  # C++小知识:不要去做编译器的工作  # C++小知识:C/C++中不要按值传递数组  # C++小知识:用合适的工具来分析你的代码  # 组中  # 长度为  # 找到了  # 也不  # 都在  # 遍历  # 几次  # 希望能  # 便可  # 有几个  # 谢谢大家  # 建立一个  # 若不  # 解决方法  # 是否存在  # 组里  # 不相等  # br  # strong  # color 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Laravel中的Facade(门面)到底是什么原理  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  Swift中switch语句区间和元组模式匹配  网页设计与网站制作内容,怎样注册网站?  详解jQuery停止动画——stop()方法的使用  JS碰撞运动实现方法详解  如何确保FTP站点访问权限与数据传输安全?  Python正则表达式进阶教程_复杂匹配与分组替换解析  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  JS去除重复并统计数量的实现方法  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel怎么为数据库表字段添加索引以优化查询  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  网站页面设计需要考虑到这些问题  免费网站制作appp,免费制作app哪个平台好?  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  微信小程序 scroll-view组件实现列表页实例代码  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  javascript日期怎么处理_如何格式化输出  如何在阿里云高效完成企业建站全流程?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  详解jQuery中的事件  开心动漫网站制作软件下载,十分开心动画为何停播?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何获取免费开源的自助建站系统源码?  php json中文编码为null的解决办法  如何在七牛云存储上搭建网站并设置自定义域名?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  详解Oracle修改字段类型方法总结  Laravel如何创建自定义Artisan命令?(代码示例)  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  如何生成腾讯云建站专用兑换码?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  浅谈redis在项目中的应用  Laravel如何配置任务调度?(Cron Job示例)  高防服务器:AI智能防御DDoS攻击与数据安全保障  黑客如何通过漏洞一步步攻陷网站服务器?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何快速搭建安全的FTP站点?  黑客入侵网站服务器的常见手法有哪些?  如何在阿里云服务器自主搭建网站?  如何快速配置高效服务器建站软件?