单身狗

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

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;
}
相关推荐
求学的小高几秒前
数据结构Day10(ASL、二分查找、分块查找)
数据结构·笔记·考研
她说彩礼65万1 分钟前
C语言 动态内存管理
c语言·开发语言·算法
RainCity1 分钟前
Java Swing 自定义组件库分享(三)
java·笔记
凤凰院凶涛QAQ2 分钟前
《C++转java快速入手系列》类与对象篇
java·开发语言·c++
Irene19914 分钟前
数据排序为什么默认升序
算法·排序
Devin~Y5 分钟前
大厂Java面试实录:Spring Boot/Cloud + Redis/Kafka + JWT + RAG/Agent(小Y翻车版)
java·spring boot·redis·spring cloud·kafka·spring security·jwt
Bat U17 分钟前
JavaEE|多线程(六)
java·java-ee
.54817 分钟前
DFS + BFS(深度优先搜索 & 广度优先搜索)
算法·深度优先·宽度优先
一行代码一行诗++20 分钟前
转义字符和语句
c语言·开发语言·算法
算法鑫探21 分钟前
算法与数据结构 以及算法复杂度
c语言·数据结构·算法·新人首发