单身狗

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

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;
}
相关推荐
FYKJ_2010几秒前
springboot网上购书商城---附源码15749
java·spring boot·后端·python·spark·django·php
万法若空6 分钟前
对数恒等式
人工智能·算法·机器学习
LayZhangStrive13 分钟前
Java IDEA - 各种快捷键设置汇总(提高工具使用效率)
java·idea·设置·快捷键
AI小码25 分钟前
如何让AI帮你构建项目?七级方法
人工智能·算法·计算机·ai·程序员·大模型·编程
snow@li31 分钟前
Java:事务管理全景梳理/解决业务系统数据一致性问题
java
1000世界小札32 分钟前
排序算法全景总结:从 O(n²) 到 O(n log n),再到线性时间(附完整对比与选型指南)
数据结构·算法·排序算法
额额额对了38 分钟前
Linux 进程管理详解:从概念到实战
java·服务器·前端
evans在进步38 分钟前
Spring Boot 启动流程与 @SpringBootApplication 核心原理详解
java·spring boot·后端
许彰午41 分钟前
11-rawSql占位符替换
java·低代码·架构
一直C1 小时前
【Linux应用编程】深入理解Linux多任务机制:进程原理、状态转换与进程控制实战
linux·开发语言·算法·ubuntu·vim·visual studio code