找单身狗(c语言)

news2024/11/15 13:43:56

1./找单身狗
//在一个数组中只有两个数字出现一次,其他所以数字都出现了两次
//编写一个函数找出这两个只出现一次的数字

2.方法一:暴力求解,我们用冒泡函数,进行比较如果i==j,那么n++,如果n==1,那么我们将他存储在arr2[],然后我们将arr2[]进行打印,就可以了。

#include<stdio.h>
//方法一;
int main()
{
	int b = 0;
	int n = 0;
	int arr2[2] = { 0 };
	int arr[ ] = { 0,1,2,3,4,5,0,1,2,3 };
	int ret = sizeof(arr) / sizeof(arr[0]);
	for (int i = 0; i < ret; i++)
	{
		int n = 0;
		for (int j = 0; j < ret; j++)
		{
			if (arr[i] == arr[j])
			{
				n++;
			}
		}
		if (n == 1)
		{
			arr2[b] = arr[i];
			b++;
		}
	}
	for (int i = 0; i < b; i++)
	{
		printf("%d ", arr2[i]);
	}
	return 0;
}

3.方法二:

/1.进行分组,如何进行分组
//用按位异或(^)比较二进制的位数,相同等于 0,不同等于 1,
// 因为3^3=0,3^3^5=5,所以可以找到他们单独的数字
//如数组int arr[ ] = { 7,1,2,3,4,5,7,1,2,3 };按位异或就是
//7^1^2^3^4^5^7^1^2^3==7^7^7^1^1^2^2^3^3^4^5==4^5
//4的二进制 0100
//5的二进制 0101
//按位与后为 0001,我们进行取一如果找到了一就出来,如果没有找到n++,
// 不同的数一定能找到一个二进制不同的地方,按位于后为最右边的1
//如果我们找到二进制的第n位为一,我们就可以将4与5分开

#include<stdio.h>
void signle_dog(int arr[], int sz,int *pc, int *pb)
{
	int pos = 0;
	int ret = 0;
	//进行按异或
	for (int i = 0; i < sz; i++)
	{
		ret = ret ^ arr[i];
	}
	//求出二进制第几位是一
	for (pos = 0; pos < 32; pos++)
	{
		if (((ret >> pos) & 1) == 1)
		{
			break;
		}
	}
	//将他们进行分组
	for (int j = 0; j < sz; j++)
	{
		if (((arr[j] >> pos) & 1) == 1)
		{
			*pc = *pc ^ arr[j];
		}
		else
		{
			*pb = *pb ^ arr[j];
		}
	}

}
int main()
{
	int arr[] = { 0,1,2,3,4,5,0,1,2,3 };
	int dog1 = 0;
	int dog2 = 0;
	int sz = sizeof(arr) / sizeof(arr[0]);
	signle_dog(arr,sz,&dog1,&dog2);
	printf("%d %d\n", dog1, dog2);
	return 0;
}

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

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

相关文章

C++编程语言——基础设施:指针,数组和引用

指针&#xff0c;数组和引用 (Pointers, Arrays, and References) 目录 7.1 引言 7.2 指针 7.2.1 void* 指针 7.2.2 nullptr 指针 7.3 数组 7.3.1 数组初始化 7.3.2 字符串文字量 7.3.2.1 原字符串(Raw Character Strings) 7.3.2.2 大字符集(Larger Charac…

Multi-UAV|多无人机、多场景路径规划MATLAB

无人机(Unmanned Aerial Vehicle&#xff0c;UAV) 是一种无需机载驾驶员的半自主飞行器&#xff0c;由于其灵活度高、机动性强等特点&#xff0c;目前已广泛应用于民用和军用领域&#xff0c;如救援、农业、 输电线路巡检等。但在实际应用中&#xff0c;单个UAV难以应对任务点分…

看github源码必备的chrome插件

Web Activity Time Tracker 一个记录github等各个网站的阅读时长 长这样 GitHub Web IDE 一个方便打开github的各种web IDE&#xff0c;最后一个选项Clone in VScode 一键克隆到本地并打开非常省事 Elmo Chat - Your AI Web Copilot 一键总结项目内容&#xff0c;打开web i…

Datawhale X 李宏毅苹果书 AI夏令营 入门 Task2-了解线性模型

目录 线性模型分段线性曲线模型变形 线性模型 输入的特征 x 乘上一个权重&#xff0c;再加上一个偏置就得到预测的结果&#xff0c;这样的模型称为线性模型。 分段线性曲线 线性模型有很大的限制&#xff0c;这一种来自于模型的限制称为模型的偏差&#xff0c;无法模拟真实的…

网络压缩之参数量化(parameter quantization)

参数量化&#xff08;parameter quantization&#xff09;。参数量化是说能否只 用比较少的空间来储存一个参数。举个例子&#xff0c;现在存一个参数的时候可能是用64位或32位。 可能不需要这么高的精度&#xff0c;用16或8位就够了。所以参数量化最简单的做法就是&#xff0c…

智慧党建解决方案

1. 新时代党建工作背景 报告强调了新时代党建工作的重要性&#xff0c;提出要利用互联网、大数据等新兴技术推进智慧党建&#xff0c;提高党的执政能力和领导水平。 2. 基层党组织建设挑战 基层党组织在日常工作中面临组织管理难、过程监管难、宣传教育难等问题&#xff0c;…

基于yolov8的人头计数检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的人头计数检测系统是一种利用深度学习技术的先进解决方案&#xff0c;旨在实现高效、准确的人头计数功能。该系统以YOLOv8为核心算法&#xff0c;该算法是YOLO系列中的最新迭代&#xff0c;以其卓越的实时检测性能和准确性著称。 该系统通过复杂的网…

pip+代理

在cmd中使用代理时执行pip指令下载包时&#xff0c; 会报错 WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by SSLError(SSLEOFError(8, EOF occurred in violation of protocol (_ssl.c:1131))): /simple/op…

day-45 全排列 II

思路 与上一题思路相同&#xff0c;代码也基本一致&#xff0c;只是需要全排列不重复 解题过程 可以利用Arrays.sort()函数将nums数组进行排序&#xff0c;这样相同的全排列数字的位置也会相同&#xff0c;可以利用List的contains()函数进行判断&#xff0c;如果不重复则加入答…

【CSS】border-image 样式不生效 - 和谷歌浏览器版本有关系 - 谷歌 80 版本边框图片样式失效问题

目录 问题解决 问题 使用边框图片时&#xff0c;部分谷歌浏览器版本中边框图片不生效 边框图片样式代码 border-image-source: url(img/dialog-bg.40ddf10d.png); border-image-slice: var(--topSlice) 50 var(--bottomSlice) 330; border-image-repeat: stretch; border-im…

Vulnhub靶场 | DC系列 - DC7

文章目录 DC-7环境搭建渗透测试 DC-7 环境搭建 靶机镜像下载地址&#xff1a;https://vulnhub.com/entry/dc-6,315/需要将靶机和 kali 攻击机放在同一个局域网里&#xff1b;本实验kali 的 IP 地址&#xff1a;192.168.10.146。 渗透测试 使用 nmap 扫描 192.168.10.0/24 网…

直播商城小程序开发指南:基于多商户商城系统源码的实现

本篇文章&#xff0c;小编将以多商户商城系统源码为基础&#xff0c;详细介绍如何开发一款高效、稳定的直播商城小程序。 一、直播商城小程序的市场需求与发展前景 直播商城小程序作为一种轻量级的应用形式&#xff0c;用户无需下载安装即可通过微信等社交平台直接访问&#…

学习计算机网络

a类0~127&#xff0c;b类128~191&#xff0c;c类192~223 网络地址&#xff1a;看子网掩码&#xff0c;分网络位和主机位&#xff0c;后面是主机位&#xff0c;主机位全部为0&#xff0c;网络地址。 直接广播地址&#xff1a;看子网掩码&#xff0c;分网络位和主机位&#xff…

Docker 修改镜像源

由于docker hub 被禁&#xff0c;导致 docker 拉取镜像失败&#xff0c;解决办法就是使用国内的镜像源&#xff0c;目前国内的镜像源还是很多的&#xff0c;例如阿里云、腾讯云、华为云等等&#xff0c;下面演示一个更换成阿里云的步骤。 1. 阿里云获取加速地址 1.1 首先登录阿…

反向迭代器:reverse_iterator的实现

目录 前言 特点 注意事项 实现 构造函数 功能函数 在list与vector中的使用 vector list 前言 反向迭代器是一种在序列容器的末尾开始&#xff0c;并向前移动至序列开始处的迭代器。在C中&#xff0c;反向迭代器由标准库中的容器类提供&#xff0c;比如vector、list、d…

代码随想录八股训练营总结篇 2024年8月

代码随想录八股训练营总结篇 2024年8月 1. 报名初衷 ​ 随着秋招的临近&#xff0c;我意识到自己需要迅速提升各方面的技术能力。但是在准备过程中&#xff0c;我自己学习动力不足&#xff0c;常常难以坚持。为了找到一群志同道合的学习伙伴&#xff0c;共同营造学习氛围&…

Ubuntu上安装配置(jdk/tomcat/ufw防火墙/mysql)+mysql卸载

jdk安装 1.上传jdk压缩包 详情&#xff1a; 下载rz服务&#xff08;lrzsz&#xff09;&#xff1a;sudo apt install lrzsz(在主用户root就不用sudo)下载压缩包&#xff1a;rz 2.解压jdk压缩包 &#xff1a; 详情&#xff1a; 在压缩包所在位置&#xff08;解压压缩使用看Li…

算法基础-离散化

1、a数组可能存在重复元素 去重 排序 2、如何算出 x 离散化后的值 二分 1、add 和 query 记录每次填入的两个数 2、将位置 x 和每次询问的两个数 l 和 r 添加到 alls 进行排序去重 3、通过Collections.binarySearch映射&#xff08;一定能找到&#xff0c;不用判…

Tita:绩效管理 101

自 20 世纪初以来&#xff0c;管理已从基于等级制度、自上而下的僵化结构演变为新的敏捷思维环境&#xff0c;在这种环境中&#xff0c;员工被赋予权力&#xff0c;团队拥有更多自主权&#xff0c;以制定与公司战略相一致的正确绩效目标。 2010 年&#xff0c;尤尔根-阿佩洛&a…

鸿蒙版本号管理问题

1&#xff0c;情景一 23版本有一个方法getTestVersionName23&#xff0c;24版本有两个方法getTestVersionName23 ,getTestVersionName24&#xff0c;项目依赖23版本&#xff0c;可以使用24版本里面的方法&#xff0c;使用ohpm.list命令查看&#xff0c;版本号是24 2&#xff0c…