【每日一题】错误的集合

news2024/11/17 19:44:26

错误的集合

 ✨审题:在一个1-n的数组中,会有一个元素重复,一个元素丢失;👉目标;找到重复的元素和丢失的元素并放入一个数组中返还回去


✨有没有想到单身狗问题的进阶版那个思路,找2个单身狗,一个是重复的元素,另一个是丢失的元素🐸那么我是不是可以给数组里的单个元素凑一对情侣出来;反正数组的元素是1-n;发现了么🤔按照单身狗2的思路,我们这个异或起来,就能得到一个2^3的ret 

 接下来就是跟着单身狗2的思路走,找到👨分界线👨>>这一思路的代码

✨分好组以后,就是找单身狗了;先注意因为原数组只有一个数,所以先用一个变量将添加对象pos位等于1的异或起来,然后原数组pos位为1的异或起来,最后二者异或就能找到一只单身狗✨

 ✨最后一步是判断那只狗是存的重复的数,哪只狗存的丢失的数,数组要先放丢失的,用个假设法,遍历原数组看一下dog1是否再原数组,若不在就和dog2互换,然后依次存入新数组

 //单身狗问题的扩展版,相同的元素多一个1
int* findErrorNums(int* nums, int numsSize, int* returnSize) {
    int ret = 0;
    //申请空间
    int* returnNums = (int*)malloc(sizeof(int) * 2);
    *returnSize = 2;
    for (int i = 0; i < numsSize; i++)
    {
        ret ^= (i + 1);
        ret ^= nums[i];
    }
    int pos = 0;
    for (int i = 0; i < 32; i++)
    {
        if ((ret >> i) & 1 == 1)
        {
            pos = i;
            break;
        }
    }
    int dog1 = 0;
    int num = 0;
    for (int i = 1; i <= numsSize; i++)
    {
        if ((i >> pos) & 1 == 1)
        {
            num ^= i;
        }
    }
    for (int i = 0; i < numsSize; i++)
    {
        if ((nums[i] >> pos) & 1 == 1)
        {
            dog1 ^= nums[i];
        }

    }
    dog1 ^= num;
    int dog2 = ret ^ dog1;
    //不确定哪个一是重复的元素,哪一个是丢失的元素,遍历查找找一下 假设法
    int falg = 0;
    for (int i = 0; i < numsSize; i++)
    {
        if (nums[i] == dog1)
        {
            falg = 1;
            break;
        }
    }
    //交换
    if (falg == 0)
    {
        dog1 = dog2 ^ dog1;
        dog2 = dog2 ^ dog1;
        dog1 = dog2 ^ dog1;
    }
    returnNums[0] = dog1;
    returnNums[1] = dog2;
    return returnNums;
}

就       到        这        吧        !

今天也要加油哦!

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

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

相关文章

升级和维护老旧LabVIEW程序

在升级老旧LabVIEW程序至64位环境时&#xff0c;需要解决兼容性、性能和稳定性等问题。本文从软件升级、硬件兼容性、程序优化、故障修复等多个角度详细分析。具体包括64位迁移注意事项、修复页面跳转崩溃、解决关闭程序后残留进程的问题&#xff0c;确保程序在新环境中的平稳运…

C++学习日记 | Lecture 7 函数进阶

资料来源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a; CPP/week07 at main ShiqiYu/CPP GitHub7.1-default-arguments_哔哩哔哩_bilibili7.2-function-overloading_哔哩哔哩_bilibili7.3-function-templates_哔哩哔哩_bilibili7.4-function-pointers-an…

【课程总结】Day7:深度学习概述

前言 本篇文章&#xff0c;我们将通过示例来逐步学习理解导数、求函数最小值、深度学习的本质、以及使用numpy和pytorch实操深度学习训练过程。 线性回归 线性回归内容回顾 在《【课程总结】Day5(下)&#xff1a;PCA降维、SVD分解、聚类算法和集成学习》中&#xff0c;我们…

Diffusers代码学习-ControlNet(Inpaint)

对于Inpaint&#xff0c;需要一个初始图像、一个蒙版图像和一个描述用什么替换蒙版的提示词。ControlNet模型允许添加另一个控制图片来调节模型。让我们用Inpaint蒙版来调整模型。这样&#xff0c;ControlNet可以使用修复掩模作为控件来引导模型在蒙版区域内生成图像。 # 以下代…

【Unity | Editor强化工具】资产快速访问工具

经常在Project窗口中翻找资产相对麻烦&#xff0c;Unity自带的Favorite功能又和Project窗口强绑定&#xff0c;且只能在双列视图下使用&#xff0c;故制作了一个可以在独立窗口中列举常用资产的小工具&#xff1a; Unity Asset Quick Access 。 CSDN弄了个Github加速计划&…

基于深度图像的无监督目标跟踪

概要 大致的步骤 深度图像获取:通过深度传感器(例如ToF相机、双目相机等)获取场景的深度图像。深度图转scanscan转pointcloud点云聚类卡尔曼滤波预测匈牙利算法匹配目标ID更新深度图转scan 参考这篇博客 scan转pointcloud

小迪安全代码语言回溯

java安全 第一个就是文件上传&#xff0c;可以通过../上传到上一级目录&#xff0c;以及别的目录&#xff0c;避免本目录不可以执行 jw令牌窃取 令牌由三部分组成&#xff0c;以.号分割&#xff0c;在java的程序看到cookie是三个奇怪的字符串以.号分开&#xff0c;可以确定是…

snmp-check一键获取SNMP信息(KALI工具系列二十一)

目录 1、KALI LINUX 简介 2、snmp-check工具简介 3、在KALI中使用onesixtyone 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、操作示例 4.1 SNMP 检查 4.2 指定 SNMP 端口 4.3 指定社区字符串 4.4 详细输出 4.5 指定多项 5、总结 1、KALI LINUX 简介…

6.11 作业

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&…

EGST:Explicit Geometric Structure Transformer论文解读

目录 一、导言 二、相关工作 1、3D局部描述子 2、点云配准方法 三、EGST模型 1、结构化特征 2、特征提取 3、点云匹配 4、变换估计 5、损失函数 四、实验 1、数据集 2、评估指标 3、细节 4、对比实验 一、导言 该论文提出一种基于增强几何结构特征的点云配准方…

【华为 ICT HCIA eNSP 习题汇总】——题目集21

1、OSPF协议中的hello报文不包括以下哪个字段&#xff1f; A、Priority&#xff08;优先级&#xff09; B、Neighbor&#xff08;邻居表&#xff09; C、Interval&#xff08;时间间隔&#xff09; D、Checksum&#xff08;校验和&#xff09; 考点&#xff1a;路由技术原理 解…

三十而已,逐梦AI新赛道,解锁职业第二春

前言 哎&#xff0c;你说这年头&#xff0c;一晃眼就三十了&#xff0c;是不是觉得找工作就像在走钢丝&#xff0c;小心翼翼还生怕踩空&#xff1f;特别是想换个跑道&#xff0c;跑到AI那边去&#xff0c;心里头那个忐忑啊&#xff0c;感觉比相亲还紧张。总担心老板们会不会嫌…

Linux-笔记 设备树插件

前言&#xff1a; 设备树插件&#xff08;Device Tree Blob Overlay&#xff0c;简称 DTBO&#xff09;是Linux内核和嵌入式系统中用于动态修改或扩展系统运行时的设备树配置的一种机制。它是对传统设备&#xff08;Device Tree Source&#xff0c;简称 DTS&#xff09;的补充&…

shiro反序列化分析

shiro反序列化分析 基础知识简单介绍关键组件SecurityManagerSubjectRealm总结 shiro安全框架在web中使用配置文件配置具体实现ShiroFilter过滤器分析 shiro的漏洞shiro550链子分析序列化加密cookie反序列化解密cookie验证总结 poc编写存在的问题和解决CC6TemplatesImlCC6insta…

AI写作助手:五款超实用工具让创作更轻松

写作这件事一直让我们从小学生头痛到打工人&#xff0c;初高中时期800字的作文让我们焦头烂额&#xff0c;一篇作文里用尽了口水话&#xff0c;拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业&#xff0c;结果毕业前的最后一道坎拦住我们的是毕业论文&#xff0c;苦战几个…

Day48 代码随想录打卡|二叉树篇---合并二叉树

题目&#xff08;leecode T617&#xff09;&#xff1a; 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新…

C++ 不定参数模版

使用不定参数模版遇到一个小问题&#xff0c;做个记录 测试代码如下&#xff1a; template<typename T, typename ...Args> void pushToVectorIfParamIsStr(std::vector<std::string>& vec, T &&value,Args&&... args) {const bool is std:…

linux-计划任务

作用&#xff1a;定时自动完成特定的工作 计划任务的分类 一次性的计划任务&#xff1a;例如下周三对文档的重要文件备份一次 周期性的计划任务&#xff1a;每天12:00创建一个文件 命令 一次性的任务计划 at batch 周期性计划任务 crontab anacron 一次性计划任务 …

快手可灵AI开始内测,对标Sora?免费体验!

最近&#xff0c;国内第一个可以和 Sora 相媲美的 AI 视频生成模型&#xff0c;快手的可灵大模型&#xff08;Kling&#xff09;开始免费内测。 在快手旗下的快影App&#xff0c;就可以申请。 别忘记填写表格信息&#xff0c;可以加快你的申请通过&#xff0c;链接我放在这里…

macOS Sequoia 开发者测试版下载和安装教程

macOS Sequoia 于 2024年6月10日在WWDC 2024 上发布&#xff0c;里面添加了AI、窗口排列、操控iPhone等功能&#xff0c;目前发布的为测试版本&#xff0c;可能很多人不知道怎么去下载安装&#xff0c;现在小编教一下大家怎么安装最新的 macOS Sequoia 开发者测试版。 下载 mac…