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

news2024/11/24 0:37:29

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

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

方法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.coloradmin.cn/o/873928.html

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

相关文章

【npm run dev报错】无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

1.winX键&#xff0c;使用管理员身份运行power shell 2.输入命令&#xff1a;set-executionpolicy remotesigned 3.输入”Y“,回车&#xff0c;问题解决。 文章来源&#xff1a;无法加载文件 C:\Program Files\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。 - 前…

自制手写机器人

写字机器人模拟在画图板上写字效果 写了一套写字机器人代码&#xff0c;有多种字体可供选择&#xff0c;需要的朋友私信获取代码和软件

LNMP分离部署

目录 前言 搭建LNMP 一、安装Nginx 配置基础环境 更改配置 二、安装Mysql 配置基础环境 重置root用户密码 登录创建数据库和授权用户 三、安装PHP 配置基础环境 验证Nginx 拓展连接Discuz 总结 前言 基于生产环境&#xff0c;如果所有服务都安装在一台主机上&…

C++入门之语法

不想写std::怎么办 https://blog.csdn.net/CSDN_fzs/article/details/105678692 1 基础必会 1.3 变量 作用&#xff1a;给一段指定的内存空间起名&#xff0c;方便操作这段内存 语法&#xff1a;数据类型 变量名 初始值; 示例&#xff1a; #include<iostream> usi…

面试总结-webpack/git

说说你对webpack的理解 webpack 是一个静态模块打包器&#xff0c;整个打包过程就像是一条生产线&#xff0c;把资源从入口放进去&#xff0c;经过一系列的加工&#xff08;loader&#xff09;&#xff0c;最终转换成我们想要的结果&#xff0c;整个加工过程还会有监控&#x…

Java获取指定文件夹下目录下所有视频并复制到另一个地方

import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.StandardCopyOption;public class VideoCopier {public static void main(String[] args) {// 指定源文件夹路径和目标文件夹路径String sourceFolderPath "path/to…

Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

摘要 大语言模型能够通过上下文学习-只需要在推理阶段加入一些输入-标签的示例对&#xff0c;就能完成对新输入文本的预测。但是&#xff0c;对模型是如何学习&#xff0c;示例的哪些方面会影响最终的任务效果&#xff0c;我们知之甚少。在这篇纹章中&#xff0c;我们揭示了 正…

postman官网下载安装登录测试详细教程

目录 一、介绍 二、官网下载 三、安装 四、注册登录postman账号&#xff08;不注册也可以&#xff09; postman注册登录和不注册登录的使用区别 五、关于汉化的说明 六、使用示范 一、介绍 简单来说&#xff1a;是一款前后端都用来测试接口的工具。 展开来说&#xff1a;…

Redis集群(三十七)

部署搭建Redis主从复制、哨兵模式、集群部署 目录 一、Redis主从复制 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;作用 &#xff08;三&#xff09;缺点 &#xff08;四&#xff09;流程 &#xff08;五&#xff09;搭建 二、Redis哨兵模式 &#xff0…

单体版ruoyi代码生成增删改查

目录 拉取代码 打开代码&#xff0c;新建一个模块&#xff0c;模块放我们的项目后台数据库的curd代码。 我们的新模块引入ruoyi的通用模块 ruoyi的adm引入我们的项目依赖&#xff0c;引用我们的模型、service、mapper 将我们的模块注入父项目 打开ruoyi-adm配置MyBatis&…

UDS的DID(Data identification)

引言 DID是UDS中的一个重要概念&#xff0c;它代表着特定的数据标识符。DID用于标识和获取ECU中的特定参数数据&#xff0c;如传感器数据、状态信息等。通过使用DID&#xff0c;诊断工具可以准确地获取所需的数据&#xff0c;从而帮助诊断人员更好地了解车辆的状态和性能。 D…

芯片工程师求职题目之CPU篇(3)

1. 什么是cache(缓存)&#xff1f;它的工作原理是什么&#xff1f; Cache是少量的快速内存。它位于主存储器和中央处理器之间。每当CPU请求memory位置的内容时&#xff0c;首先检查cache中是否有此数据。如果数据存在于cache中&#xff0c;CPU直接从cache中获得数据。这是更快…

必备工具:Postman Newman 详解

目录 Postman Newman 是什么&#xff1f; Postman Newman 的作用 如何使用 Postman Newman&#xff1f; 第一步&#xff1a;安装 Node.js 第二步&#xff1a;全局安装 Newman 第三步&#xff1a;导出集合或环境变量为 JSON 格式 第四步&#xff1a;使用 Newman 运行测试…

IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)

一、前言 当涉及到软件开发和项目管理时&#xff0c;使用一个可靠的构建工具是非常重要的。Maven是一个广泛使用的构建工具&#xff0c;它为Java项目提供了一种简化的构建过程和依赖管理。 在本文中&#xff0c;我们将探讨如何部署Maven并开始使用它来构建您的项目。我们将介绍…

快递管理系统springboot 寄件物流仓库java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 快递管理系统springboot 系统有1权限&#xff1a;管…

205、仿真-51单片机直流数字电流表多档位切换Proteus仿真设计(程序+Proteus仿真+原理图+流程图+元器件清单+配套资料等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、原理图 五、程序源码 资料包括&#xff1a; 方案选择 单片机的选择 方案一&#xff1a;STM32系列单片机控制&#xff0c;该型号单片机为LQFP44封装&#xff0c;内部资源…

Apache JMeter:完全指南

Apache JMeter 是一款开源的性能测试工具&#xff0c;可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的&#xff0c;因此在运行之前必须先安装 JDK。您可以在…

【Python常用函数】一文让你彻底掌握Python中的toad.quality函数

任何事情都是由量变到质变的过程&#xff0c;学习Python也不例外。只有把一个语言中的常用函数了如指掌了&#xff0c;才能在处理问题的过程中得心应手&#xff0c;快速地找到最优方案。本文和你一起来探索Python中的toad.quality函数&#xff0c;让你以最短的时间明白这个函数…

Multi-object navigation in real environments using hybrid policies 论文阅读

论文信息 题目&#xff1a;Multi-object navigation in real environments using hybrid policies 作者&#xff1a;Assem Sadek, Guillaume Bono 来源&#xff1a;CVPR 时间&#xff1a;2023 Abstract 机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。 最近…