单身狗

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

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;
}
相关推荐
码界奇点1 分钟前
基于Spring Boot和Vue3的无头内容管理系统设计与实现
java·spring boot·后端·vue·毕业设计·源代码管理
蜡笔小马3 分钟前
8.Packing 算法
数据结构·b树
划破黑暗的第一缕曙光6 分钟前
[数据结构]:4.二叉树_堆
c语言·数据结构·二叉树·
闪电麦坤9510 分钟前
Leecode热题100:矩阵置零(矩阵)
线性代数·算法·矩阵
九皇叔叔11 分钟前
【03】微服务系列 之Nacos 注册中心(服务注册)
java·微服务·nacos·架构·注册中心·服务注册
浅念-15 分钟前
C语言——双向链表
c语言·数据结构·c++·笔记·学习·算法·链表
轩情吖16 分钟前
数据结构-图
数据结构·c++·邻接表·邻接矩阵·最小生成树·kruskal算法·prim算法
Wh-Constelltion17 分钟前
【PQ分解法潮流计算(matlab版)】
算法·matlab
木辰風29 分钟前
PLSQL自定义自动替换(AutoReplace)
java·数据库·sql
heartbeat..36 分钟前
Redis 中的锁:核心实现、类型与最佳实践
java·数据库·redis·缓存·并发