当前位置: 首页 > news >正文

【C语言】每日一题(错误的集合)

最近在牛客、力扣上做题,花费海量时间,苦不堪言,有时绞尽脑汁也想不出,痛定思痛,每日记录写的比较困难的题。
错误的集合
在这里插入图片描述
题目如上图所示

题主乍看之下觉得很简单,再看例子,不就是一个有序数组找重复和缺的吗,感觉很快就可以秒杀,殊不知,我已经死了。
看到例子之后题主先入为主,带偏了自己。注意审题!!

方法1:暴力循环,通过内层与外层双重for循环,因为题目明确说明是1~n的整数

static int arr[2];
int* findErrorNums(int* nums, int numsSize, int* returnSize)
{*returnSize=2;int i=0;int j=0;for(i=1;i<=numsSize;i++)//外层循环,从1开始{int count=0;//计数器for(j=0;j<numsSize;j++){if(i==nums[j])count++;//对于i,出现相同时+1,正常情况下,count为1}if(count==2)//当为2时,说明出现重复arr[0]=i;if(count==0)//为0时,缺失arr[1]=i;}return arr;
}

方法2.
利用冒泡排序(因为我学艺不精只会冒泡排序),将数组改写为有序数组,此时,
求重复数时,只需要遍历数组,与前一个比较即可得到
求被覆盖的数时
要进行分类讨论
1.当是开头丢失时

当是22时 比较nums[0]与1

2.当是末尾丢失时

当是1233时 比较nums[numssize-1]与numssize

3.当处在中间时
与前或后作差为2
例如

当是1224时 4-2=2
当为1334时 2-1=2

static int arr[2];
int* findErrorNums(int* nums, int numsSize, int* returnSize)
{*returnSize=2;int i=0;int j=0;int tmp=0;for(i=0;i<numsSize-1;i++)//冒泡排序{for(j=0;j<numsSize-1-i;j++){if(nums[j]>nums[j+1]){tmp=nums[j];nums[j]=nums[j+1];nums[j+1]=tmp;}}}for(i=0;i<numsSize-1;i++)//找重复{if(nums[i]==nums[i+1]){arr[0]=nums[i];break;}}//找被覆盖的数,然后分情况if(nums[0]!=1)arr[1]=1;if(nums[numsSize-1]!=numsSize)arr[1]=numsSize;for(i=1;i<numsSize;i++){if(nums[i]-nums[i-1]==2){arr[1]=nums[i]-1;break;}}return arr;
}

以后每天更新,若有不对请及时指出

http://www.lryc.cn/news/128450.html

相关文章:

  • [JavaWeb]【四】web后端开发-SpringBootWeb入门
  • 前端css
  • vb+sql医院门诊管理系统设计与系统
  • bootstrap-modal调用ajax后不经过回调函数
  • 【【典型电路设计之片内存储器的设计之RAM的Verilog HDL描述一】】
  • 食品行业案例 | 燕千云助力头部食品企业搭建数智化 IT服务管理体系及平台
  • SpringBoot的日志信息及Lombok的常用注解
  • Genoss GPT简介:使用 Genoss 模型网关实现多个LLM模型的快速切换与集成
  • 淘宝API接口的实时数据和缓存数据区别
  • excel统计函数篇1之average系列
  • 数学建模(二)线性规划
  • 小白到运维工程师自学之路 第七十三集 (kubernetes应用部署)
  • 联合仿真 ADAMS 和 SIMULINK步骤
  • 【C++精华铺】7.C++内存管理
  • 牛客网华为OD前端岗位,面试题库练习记录02
  • 数据库动态增删数据,导致分页查询数据出现重复或遗漏的问题分析及解决方案
  • 神经网络基础-神经网络补充概念-44-minibatch梯度下降法
  • 比较海思麒麟810与高通骁龙855的优劣
  • 计算机机房的管理
  • 软件架构生态化-多角色交付的探索实践
  • 基于YOLOv5n/s/m不同参数量级模型开发构建茶叶嫩芽检测识别模型,使用pruning剪枝技术来对模型进行轻量化处理,探索不同剪枝水平下模型性能影响【续】
  • 深度解析 Llama 2 的资源汇总:不容错过
  • Git 删除 GitHub仓库的文件
  • 如何使用 ChatGPT 将文本转换为 PowerPoint 演示文稿
  • html(七)meta标签
  • 《Go 语言第一课》课程学习笔记(五)
  • Golang 并发编程基础
  • 代码随想录算法训练营(二叉树总结篇)
  • 华为开源自研AI框架昇思MindSpore应用案例:基于MindSpore框架的UNet-2D案例实现
  • Python入门【TCP建立连接的三次握手、 TCP断开连接的四次挥手、套接字编程实战、 TCP编程的实现、TCP双向持续通信】(二十七)