当前位置: 首页 > news >正文

找出单身狗1,2

目录

  • 1. 单身狗1
  • 2. 单身狗2

1. 单身狗1

题目如下:
在这里插入图片描述

思路:一部分人可能会使用对数组排序,遍历数组的方式去找出只出现一次的数字,但这种方法的时间复杂度过高,有时候可能会不满足要求。
有一种十分简便的方法是使用异或运算:

在这里插入图片描述

代码实现如下:

#include <stdio.h>int main()
{int arr[] = { 1,2,3,4,5,1,2,3,4 };int num = 0;int sz = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < sz; i++){num ^= arr[i];}printf("%d\n", num);return 0;
}

2. 单身狗2

题目如下:
在这里插入图片描述

思路:通过上面的题目,我们不难想到,如果我们可以把数组中的数据分离开,再分别进行异或,就可以找出那两个数字。
在这里插入图片描述

代码实现如下:

#include <stdio.h>int main()
{int arr[] = { 1,2,3,4,5,1,2,3,4,6 };int sz = sizeof(arr) / sizeof(arr[0]);int num = 0;//1.整体异或,结果就是两个不同数字的异或结果  5^6for (int i = 0; i < sz; i++){num ^= arr[i];}//2.找到5^6倒数第k位为1int k = 0;for (int i = 0; i < 32; i++){if (((num>> k) & 1) == 1){k = i;break;}}//3.根据倒数第k位为1或0,把全部数字分开,再分别异或int p1 = 0;int p2 = 0;for (int i = 0; i < sz; i++){if (((arr[i] >> k) & 1) == 1){p1 ^= arr[i];}else{p2 ^= arr[i];}}printf("%d %d", p1, p2);return 0;
}
http://www.lryc.cn/news/313715.html

相关文章:

  • 贝叶斯优化BiLSTM分类预测(matlab代码)
  • Linux运维:实现光盘开机自动挂载、配置本地yum源教程
  • C语言从入门到精通 第十二章(程序的编译及链接)
  • 即插即用篇 | YOLOv8 引入 ParNetAttention 注意力机制 | 《NON-DEEP NETWORKS》
  • 基于51单片机的数字频率计设计
  • 20240307-1-前端开发校招面试问题整理JavaScript
  • 1.3 数据库系统的结构
  • 【Springer出版 · EI检索】| 第二届先进无人飞行系统国际会议(ICAUAS 2024)
  • RocketMQ快速入门_2. rocketmq 的应用场景、与其他mq的差异
  • 【Azure 架构师学习笔记】- Azure Private Endpoint
  • 开发知识点-Python-爬虫
  • 如何修复eutil.dll文件,eutil.dll下载安装教程
  • 虾皮、lazada店铺运营攻略,如何搭建高效、稳定的自养号测评系统
  • 《TCP/IP详解 卷一》第13章 TCP连接管理
  • 许多人可能还不了解这个信息差:美赛的第一批 EI 已经录用,不用再犹豫啦
  • DFS回溯-经典全排列问题(力扣)
  • 如何在Windows上使用Docker,搭建一款实用的个人IT工具箱It- Tools
  • Linux运维_Bash脚本_编译安装ncurses-5.6
  • pip install和conda install的区别
  • 实现video视频缓存
  • Jmeter事务控制器实战
  • S4---FPGA-K7板级原理图硬件实战
  • 某些微信浏览器(比如小米手机mix2 8.0,Android 6:ZTE 7 max)input标签file属性,无法选中图片或者调用相机
  • python网络爬虫技术-mysql-5.6.39 安装
  • Projection head与使用例子
  • 2024年新版CMS内容管理使用,不用回退老版本 使用最新小程序云开发cms内容模型
  • MySql--死锁
  • 【自然语言处理六-最重要的模型-transformer-上】
  • 开发一个带有Servlet的webapp(重点)
  • 根据xlsx文件第一列的网址爬虫