找单身狗1

一个数组中只有1个数字出现1次,其他数字都是成对出现,找出这个单身狗。

对于这个问题,这里提供两种思路:

1.暴力求解

这种方法是最容易想到的,分别统计每个元素出现的次数,找到出现一次的那个数字即可。然而毕竟是暴力求解,这种求解方式的时间复杂度必然很高。相信大家能够写出暴力求解的代码,这里就不给出这种方法的代码了~

2.优雅解法

这种方法利用了异或的特点:相同为0,相异为1。a^a=0,a^0=a。另外,异或是支持交换律的,即3^5^3==3^3^5==5(大家不明白的话,可以写成二进制异或一下,就会豁然开朗,直接记住结论也行),那么我们可以利用异或的特点,将数组中每一个元素逐个异或到同一个数0上,那么最终异或的结果就是单身狗了。

代码如下:

#include <stdio.h>
int find_single_dog1(int arr[],int sz)
{int n = 0;int i = 0;for (i = 0; i < sz; i++){n ^= arr[i];//异或到n上}return n;
}
int main()
{int arr[] = { 1,2,3,4,5,1,2,3,4 };int sz = sizeof(arr) / sizeof(arr[0]);int ret = find_single_dog1(arr, sz);printf("单身狗是%d\n", ret);return 0;
}

这道题让我们更加理解了异或的特点,挺好的!

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

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

相关文章

C++基础之类二(类的实例化,This指针)

目录 类的实例化 概念 类和对象的区别 计算一个类 不同的类的大小 类的存储模型 内存对齐 让结构体按照指定的默认对齐数进行对齐 确定偏移量 大小端字节序 This指针 概念 this指针四大特性 一些关于this指针的问题 总结 之前学过了类&#xff0c;但在编程中类无法直接使用&…

docker-compose 部署示例

文章目录 docker-compose文件格式docker-compose 下载 docker-compose文件格式 这个软件的实际很小&#xff0c;只是根据配置文件产生一些docker命令来执行可以。 配置文件本身是yml的格式&#xff0c;如下 version: 3.5services:# Etherpad: real-time collaborative docume…

MQTT 主题通配符

MQTT 主题通配符 MQTT 主题通配符包含单层通配符 及多层通配符 #&#xff0c;主要用于客户端一次订阅多个主题。 注意&#xff1a;通配符只能用于订阅&#xff0c;不能用于发布。 单层通配符 加号 (“” ) 是用于单个主题层级匹配的通配符。在使用单层通配符时&#xff0c;…

鼎鑫鸿鄴利用国家的策略优势和满足全球需求并驾齐驱

随着全球对可再生能源的需求不断增长&#xff0c;鼎鑫鸿鄴新能源科技有限公司正充分利用中国政府的策略优势&#xff0c;积极满足全球能源使用需求&#xff0c;并在可再生能源领域崭露头角。中国属于全球最大的太阳能市场&#xff0c;在技术研发、产能建设和市场规模等方面拥有…

华为HCIP题库h12-821题库新增30题

901、 &#xff08;多选题&#xff09;下面关于BGP中的公认属性的描述&#xff0c;正确的是 A、公认必属性是所有BGP路由器都识别&#xff0c;且必须存在于Updata消息中 B、BGP必须识别所有公认属性 C、公认属性分为公认必遵和可选过渡两种 D、公认任意属性是所有BGP造由器…

[Spring] SpringMVC 简介(一)

目录 一、SpringMVC 简介 1、什么是 MVC 2、什么是 SpringMVC 3、SpringMVC 实现原理 4、SpringMVC 的特点 二、简单案例 1、引入依赖 2、在 web.xml 中配置前端控制器 DispatcherServlet 3、创建 SpringMVC 的配置文件 4、创建请求控制器 5、测试页面 6、访问不到 …

数学建模——人工神经网络模型

一、人工神经网络简介 1、神经网络起源与应用 1943年心理学家McCulloch和数学家Pitts提出神经元生物数学模型&#xff08;M-P模型&#xff09;&#xff0c;后来人工神经网络(Artifical Neural Network,ANN)是在生物神经网络(Biological Neural Network,BNN)基础上发展起来的&a…

网络通信错误代码列表 HTTP 、FTP

HTTP 1xx&#xff08;临时响应&#xff09;&#xff1a;表示临时响应并需要请求者继续执行操作的状态代码。 100 &#xff08;继续&#xff09; 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分&#xff0c;正在等待其余部分。 101 &#xff08;切换协议…

Json的操作

Json解析float报错&#xff0c;要使用double 第一种 void Start(){//Convert();Convertddd();}public void Convertddd(){ //LineDataDic d new LineDataDic();JsonData d new JsonData();for (int i 0; i < 5; i){LineData convertData new LineData();convertData.ta…

【LeetCode】2578. 最小和分割

难度&#xff1a;简单 题目 给你一个正整数 num &#xff0c;请你将它分割成两个非负整数 num1 和 num2 &#xff0c;满足&#xff1a; num1和num2直接连起来&#xff0c;得到 num各数位的一个排列。 换句话说&#xff0c;num1 和 num2 中所有数字出现的次数之和等于 num 中…

Kestra:高性能、基于 Java 的编排平台

Kestra 是一个基于 Java 构建的事件驱动的编排和调度平台&#xff0c;它利用 YAML 进行工作流定义&#xff08;您可以将其视为工作流的 Terraform&#xff09;。 Kestra 可以简化计划和事件驱动的工作流程。通过将基础设施即代码最佳实践引入数据、流程和微服务编排&#xff0…

MobaXterm使sftp目录与cmd目录同步

MobaXterm使sftp目录与cmd目录同步 创建session时在ssh菜单栏中选择Advanced SSH settings其中SSH-browser type 选择SCP&#xff08;enhanced speed&#xff09; 勾选Follow SSH path

Red Hat 8 安装Docker返回找不到镜像的问题(Status code: 404)

文章目录 小结问题解决参考 小结 Red Hat 8 yum 指令安装Docker社区版时返回了Status code: 404错误&#xff0c;也就是找不到相应的仓库镜像&#xff0c;进行了解决。 问题 环境: Red Hat 8.3 首先安装了 yum install -y yum-utils配置Red Hat 8的Docker的镜像仓库&#x…

Ubuntu18.04中QT安装下载安装pcl和vtk以及使用过程中踩过的坑

一、先记录一下下载过程中踩过的坑 问题1&#xff1a;QVTKOpenGLNativeWidget和QVTKWidget 之前从来没有接触过QT中显示3D点云方面的知识&#xff0c;了解到可以用pcl&#xff0c;然后在网上各种找pcl下载的相关内容&#xff0c;想要在QT中显示出来&#xff0c;需要用到VTK&a…

TS(五):装饰器

装饰器 启用装饰器支持类装饰器定义并使用装饰器对比不使用装饰器装饰器叠加实现消息提示统一响应装饰器工厂 方法装饰器登录状态验证数据请求 属性装饰器大小写转换 元数据安装依赖基础用法 参数装饰器验证参数是否为必填项 启用装饰器支持 修改 tsconfig.json {"exper…

和鲸 ModelWhale 与华为 OceanStor 2910 计算型存储完成兼容性测试

数智化时代&#xff0c;数据总量的爆炸性增长伴随着人工智能、云计算等技术的发展&#xff0c;加速催化了公众对于数据存储与应用的多元化需求。同时&#xff0c;数据也是重要的基础资源和战略资源&#xff0c;需要严格保障其安全性、完整性。搭建国产数据基础设施底座&#xf…

信息系统项目管理师第四版学习笔记——高级项目管理

项目集管理 项目集管理角色和职责 在项目集管理中涉及的相关角色主要包括&#xff1a;项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人。 项目集发起人和收益人是负责承诺将组织的资源应用于项目集&#xff0c;并致力于使项目集取得成功的人。 项目集…

实验2.1.2 交换机的常用配置

项目2 交换技术的位置 活动2 交换机的常用配置 一、具体要求&#xff1a; &#xff08;1&#xff09;添加1台计算机&#xff0c;将标签名更改为PC1。 &#xff08;2&#xff09;添加1台S3700-26C-HI交换机&#xff0c;标签名为SWA&#xff0c;将交换机的名称设置为SWA。 &am…

AI:37-基于深度学习的安全帽检测方法研究

随着人工智能的快速发展,安全问题日益受到关注。在工业生产、建筑工地和其他危险环境中,安全帽的佩戴是预防头部伤害的重要措施。本文研究了基于深度学习的安全帽检测方法,通过分析图像数据中的头部和安全帽,实现了自动化安全帽检测和预警系统。 1.随着工业自动化的推进和…

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu

华为云云耀云服务器L实例评测 &#xff5c; 实例评测使用之硬件参数评测&#xff1a;华为云云耀云服务器下的 Linux 磁盘目录分析神器 ncdu 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器…