单身狗

我们这题的思路就是先排序,然后对相邻的两个元素做比较,如果不相等就把前面的记录下来,然后++往后

cpp 复制代码
void bsort(int* arr, int sz)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < sz - 1; i++)
	{
		for (j = 0; j < sz - 1 - i; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
	}
}
void findog(int* arr, int sz, int* num)
{
	bsort(arr, sz);//先排序
	int i = 0;
	int j = 0;
	for (i = 0; i < sz; )
	{
		if (arr[i] == arr[i + 1])//如果相等就+=2,跳过两个元素
		{
			i += 2;
		}
		else
		{
			num[j] = arr[i];//不相等就记录下来然后+1跟下一个作比较
			i++;
			j++;
		}
	}
}
int main()
{
	int arr[] = { 1,2,3,4,5,1,2,3,4,6 };
	int num[2] = { 0 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	findog(arr, sz, num);
	printf("%d %d", num[0], num[1]);
	return 0;
}
相关推荐
楼兰公子13 小时前
读取rpi摄像头
linux·服务器·算法
渡之14 小时前
NaviLoc - GNSS 拒止环境下无人机空对地卫星视觉定位算法 论文整理
算法·无人机·飞控
AI人工智能+电脑小能手14 小时前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
嵌入式×边缘AI:打怪升级日志14 小时前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
leo__52014 小时前
单载波中继系统资源分配算法MATLAB仿真程序
算法·matlab·unity
牢姐与蒯14 小时前
cpp数据结构之map
数据结构
FreeGo~14 小时前
Linux 系统编程 进程篇 (五)
java·linux·服务器
故事和你9114 小时前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论
XiYang-DING14 小时前
【Java EE】定时器
java·python·java-ee
Fuly102414 小时前
java面试知识点复习
java·开发语言·面试