单身狗

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

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;
}
相关推荐
阿维的博客日记5 小时前
怎么用ThreadLocal解决用户的登录上下文
java·juc
gaosushexiangji5 小时前
DIC系统推荐:基于千眼狼三维数字图像相关的无人机旋翼疲劳试验全场应变与位移测量
人工智能·算法
Dicky-_-zhang5 小时前
容器编排实战:Docker与Kubernetes对比选型与落地实践
java·jvm
benpaodeDD5 小时前
视频10,11,12,13——java程序的加载与执行,安装jdk
java·开发语言
数字化顾问6 小时前
(122页PPT)数字化架构的演进和治理(附下载方式)
java·运维·架构
XiYang-DING6 小时前
【Java SE】JVM
java·开发语言·jvm
小陶来咯6 小时前
小智接入懒人说书MCP
java·开发语言
Dicky-_-zhang6 小时前
日志管理实战:ELK与Loki对比选型与落地实践
java·jvm
nJI74egg17 小时前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·面试·java-ee
刮风那天7 小时前
Android AMS创建进程不用Binder而用Socket?
android·java·binder