数组里暴力查找单身狗和'^'异或快速查找单身狗

int main()
{
char arr[] = { 1,2,3,4,5,7,5,1,2,3,4 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i,ret = 0;
//0^a=a,a^b^a=b,a^a=0,异或满足交换规律,相同为0,反之为1;
for (i = 0; i < sz; i++)
{
ret = ret ^ arr[i];
}
printf("单身狗是 %d", ret);
return 0;
}
int main()
{
char arr[] = { 1,2,3,4,5,7,5,1,2,3,4 };
int sz = sizeof(arr) / sizeof(arr[0]);
//暴力求解
int i = 0;
for (i = 0; i < sz; i++)
{
int j = 0;
int count = 0;//计数器
for (j = 0; j < sz; j++)
{
if (arr[i] == arr[j])
{
count++;//每个元素会和自己比一次,然后和数组内相同的元素
//再比较一次,重复了,count = 2,没重复,count = 1
}
}
if (count == 1)
{
printf("单身狗是 %d", arr[i]);
break;
}
}
return 0;
}

posted @   小蠕虫  阅读(518)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示