2013小米笔试题--异形数

2023-10-29

题目:

一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个。比如数组元素为【1, 2,4,5,6,4,2】,只有1,5,6这三个数字是唯一出现的,我们只需要输出1,5,6中的一个就行。

分析:一般这样的题目采用异或的办法来去重,但是这里有三个不同的,那么这个三个两两异或,肯定会出现2个异或的结果低位第一个为1的位置相同,另外一个不同!!!!这个自己推导。根据这个结论,我们就有办法取出其中一个不同的数。将这3个异或后的结果分别取最低位中1的位置。然后再将这3个结果都异或,得到其中不同的那个,那么现在用所有原始数据都相互异或后再分别与每个原始数据异或,取最低位为1的位置 ,如果跟上面相同,那么输出这个数;

代码如下:

int lowbit(int x)//输出x 的低位中的第一个1 位置  
{  
    return x&~(x-1);  //x 与 负x 相与 找到  
}  
void find(int *arr,int len)  
{  
    int xor = 0;  
    int flips = 0;  
    for (int i=0;i<len;++i)  
        xor ^= arr[i];  
    // 三个数两两的异或后lowbit有两个相同,一个不同,可以分为两组 //正确  
    for(int i=0;i<len;++i)  
        flips ^=lowbit(xor ^ arr[i]);  
    // 表示的是:flips=lowbit(a^b)^lowbit(a^c)^lowbit(b^c)    
    int b = 0;              // 假设三个只出现一次的其中一个数为b  
    for(int i=0;i<len;++i)  
        if(lowbit(xor ^ arr[i]) == flips)  
            b = arr[i];  //这里要注意一定要遍历完,不能相等取出arr[i]就返回,因为有可能其他出现2次的数干扰lowbit,使之相等,从而返回错误的数据
    cout<<b<<endl;  
    //test/  
    //int arr[] = {1,5,7,1,5,7,12,11,13}; //共 11 个   
    //find(arr,9);  
    //  
}



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2013小米笔试题--异形数 的相关文章

  • 2022.3.17网易暑期实习游戏研发岗第一题

    第一题是33的锯齿数独 不了解锯齿数独的可以先百度 大概意思就是nn的数独除了保持一般数独的特性之外 还要求各个宫 n个格子构成的连通区域 n n的数独就有n个宫 也满足数独行 列的特性 然后给出数独当前的状态 让你判断是否能有效地填充该数
  • 华为8.21日成渝地区笔试题,,,超详细的喔

    8月22日面试的 面试感受放到牛客网上了 点下面链接即可 https www nowcoder com discuss 235118 笔试一共三道题 分别是100分 200分 300分 可以使用本地IDE 第一题 报文转义AC20 如果报文
  • 2013小米笔试题--异形数

    题目 一个数组里 除了三个数是唯一出现的 其余的都出现偶数个 找出这三个数中的任一个 比如数组元素为 1 2 4 5 6 4 2 只有1 5 6这三个数字是唯一出现的 我们只需要输出1 5 6中的一个就行 分析 一般这样的题目采用异或的办法
  • 小米红米手机刷入Recovery手机教程-TWRP下载-获取root权限-新增小米12/13Pro适配

    刷机注意 本教程为小米全机型 目前已整理机型都可以使用 请确保你的电脑能正确连接你的手机 部分手机需要解锁BL 小米解锁BL教程 http www romleyuan com lec read id 83 更新日志 20230221更新日志
  • 算法笔试题_2

    给定一个 N 进制正整数 把它的各位数字上数字倒过来排列组成一个新数 然后与原数相加 如果是回文数则停止 如果不是 则重复这个操作 直到和为回文数为止 如果 N 超过 10 使用英文字母来表示那些大于 9 的数码 例如对 16 进制数来说
  • 简单理解磁盘结构

    本文首发于 Guanngxu 的个人博客 磁盘到底是怎样工作的 一文理解硬盘结构 数据库系统总会涉及到辅助存储 大多都是磁盘 因为它们能够存储大量需要长期保存的数据 因此我们有必要先了解了解磁盘的相关知识 根据机械原理 存储器的容量越大其速
  • 网易笔试编程题

    下厨房 题目描述 牛牛想尝试一些新的料理 每个料理需要一些不同的材料 问完成所有的料理需要准备多少种不同的材料 输入描述 每个输入包含 1 个测试用例 每个测试用例的第 i 行 表示完成第 i 件料理需要哪些材料 各个材料用空格隔开 输入只
  • 小米手机Attempt to invoke interface method 'boolean android.database.Cursor.moveToFirst()'

    原文 http blog csdn net iamwutianbao article details 52459509 小米手机选择了图片之后 小米机会崩掉 别的机子 啥版本都没问题 看异常信息 指示cursor moveToFirst 空
  • 小米9 MIUI12.5 红米 K40s MIUI13.0.10 安装谷歌框架

    前言 由于更换了小米9手机后 我想重新安装谷歌框架的 发现这谷歌框架安装不上了 下载第三方安装框架工具也是不行 然后看到一篇文章说小米9手机自带有个GMS服务框架 然后我试了一下还真的可以 所以分享一下 如果文章没了说明我已经进去了 设备
  • 洗牌算法shuffle

    将原来数组的数组进行打散 使原数组的某个数在打散后的数组中的每个位置上等概率的出现 很容易想到 需要用到随机数函数 而且应该是一个平均分布的随机数函数 还需要一个不放回的采样的生成模式 1 random seed x 伪随机数生成模块 如果
  • 阿里云实习生部门笔试2020.04

    月初申请阿里c c 实习生 公司很快安排了上机笔试 是两道算法题大题 很难 没刷过题导致题目也看不怎么懂 笔试完第二天阿里云打电话安排另一场笔试 题目如下 评测题目 无 第一题 char str http www ibegroup com
  • 2022多益网络春招之最后一场--软件工程师笔试

    题型 选择 填空 简答 算法 凭借自己的回忆说一下题目类型 选择题 涉及到的题型主要是Java基础的题目 例如分析代码的时间复杂度 一些排序算法的时间复杂度 二叉排序树 sql语句 很简单 散列表 链表 什么数据结构具有记忆功能 连接查询
  • 4399笔试题

    1 冒泡排序的时间复杂度 2 有无序数字5000个 用什么算法能快速的找出最大的前50个数字 3 比如有10个台阶 一直青蛙一次只能跳一个或者二个台阶 问青蛙从第一个台阶开始跳最多有几种跳法 4 从区间 2 2 中随意取出二个实数 它们的和
  • 雷军发布会刚结束,就能写出上万字原创文章!

    前言 看完雷军演讲会之后你有没有看到过很多文章 成千上万个字的原创文章 瞬间就出现了 这是一个一个字敲的吗 当然不是 是AI 话不多说直接上教程 把雷军的演讲整理到笔记中 可以是md格式 word格式等等 复制粘贴即可 打开网站 smart
  • 【编程笔试】美团2021校招笔试-通用编程题第5场(附思路及C++代码)

    导览 练习地址 修改大小写 式子求值 争夺地盘 公司管理 总结 练习地址 点此前往练习 修改大小写 在小美的国家 任何一篇由英文字母组成的文章中 如果大小写字母的数量不相同会被认为文章不优雅 现在 小美写了一篇文章 并且交给小团来修改 小美
  • c/c++笔试面试题_6

    几个简单的c 面试题 2006 10 14 14 50 今天偶然看见这几个面试题 很有感触 想起一年前自己的求职经历 1 引言 本文的写作目的并不在于提供C C 程序员求职面试指导 而旨在从技术上分析面试题的内涵 文中的大多数面试题来自各大
  • 【编程笔试】美团2021校招笔试-通用编程题第10场(附思路及C++代码)

    导览 练习地址 淘汰分数 正则序列 公司食堂 最优二叉树II 练习地址 点此前往练习 淘汰分数 某比赛已经进入了淘汰赛阶段 已知共有n名选手参与了此阶段比赛 他们的得分分别是a 1 a 2 a n 小美作为比赛的裁判希望设定一个分数线m 使
  • 笔试

    给定两个字符串s1和s2 如果s1删除若干个字符后变成s2 则称s2为s1的子串 求s2在s1中的起始位置的最大值 输入描述 只有一行 s1 s2 s1和s2用空格隔开 s1和s2度不会含有空格 s1和s2的长度均大于1且小于256 输出描
  • 《面试准备》C++链表操作3(合并两个有序链表)

    include
  • 【笔试】操作系统知识点整理

    一 操作系统概述 1 操作系统的主要功能 进程与处理机管理 作业和进程调度 进程控制和进程通信 存储管理 内存分配 地址映射 内存保护和内存扩充 设备管理 缓冲区管理 设备分配 设备驱动 设备无关性 文件管理 文件存储空间的管理 文件操作的

随机推荐

  • 使用java实现http多线程下载

    下载工具我想没有几个人不会用的吧 前段时间比较无聊 花了点时间用java写了个简单的http多线程下载程序 纯粹是无聊才写的 只实现了几个简单的功能 而且也没写界面 今天正好也是一个无聊日 就拿来写篇文章 班门弄斧一下 觉得好给个掌声 不好
  • linux下通过V4L2驱动USB摄像头

    目录 文章目录 目录 前言 v4l2 解析 v4l2 介绍 应用程序通过 V4L2 接口采集视频数据步骤 相关结构体解析 总结 参考链接 前言 在移植罗技C270摄像头到6818的过程中 内核已经检测到了USB摄像头 但是直接用OpenCV
  • /proc/sys/kernel/hung_task_timeout_secs问题

    具体的问题如下 判定是磁盘写入的问题 正在找照成文件卷hung的原因
  • 一维码和二位码主要原理

    1 条码主要分类 Code39码 标准39码 Codabar码 库德巴码 Code25码 标准25码 ITF25码 交叉25码 Matrix25码 矩阵 25码 UPC A码 UPC E码 EAN 13码 EAN 13国际商品条码 EAN
  • EEPROM读写测试实验

    EEPROM是一种用于计算机系统的非易失性存储器 也常在嵌入式领域中作为数据的存储设备 在物联网及可穿戴设备等需要存储少量数据的场景中也有广泛应用 实验任务 本节的实验任务是先向EEPROM AT24C64 的存储器地址0至255分别写入数
  • MongoDB 使用总结

    简介 java系列技术分享 持续更新中 初衷 一起学习 一起进步 坚持不懈 如果文章内容有误与您的想法不一致 欢迎大家在评论区指正 希望这篇文章对你有所帮助 欢迎点赞 收藏 留言 更多文章请点击 文章目录 一 MongoDB简介 二 Mon
  • 臻识科技用全智能相机,把智慧城市的交通/安防/工业制造做到极致

    俨然 智慧城市已经是一个技术密集 资本密集 巨头密集 关注度密集的大热门领域 从技术层面来看 智慧城市对当下热门技术进行了综合 Cloud Big Data AI AR VR 5G IoT Quantum Computing Edge Co
  • 极域课堂管理系统软件V6.0 2016 豪华版

    百度网盘链接地址 https pan baidu com s 1ZXClL84 iFl8klR3Kme5 w 地址链接失效请及时联系本人 QQ 395648542
  • 超实用!深度比较Python对象之间的差异

    本文完整示例代码及文件已上传至Github仓库https github com CNFeffery PythonPracticalSkills 很多情况下我们需要对两条数据之间的差异进行比较 如果仅仅是针对数值型对象 那么两者的差值就是所谓
  • 面试经:一线城市搬砖,又面软件测试岗,5000就知足了...

    今天有个大专生来我公司面试软件测试 他说在 地下城 64开搬砖 一个月能赚7万多 就在上星期 所有的号全被封了 所以来公司上班了 目前有一年多软件测试工作经验 来面试的这个大专生他的自我介绍是这样的 他说 学历大专 大专学的专业是软件技术
  • 《数学建模实战攻略》

    专栏策划 一 目标受众 数学建模实战攻略 面向数学建模初学者 参加数学建模竞赛的学生以及对数学建模有兴趣的研究者和开发者 二 专栏目录 引言 专栏简介与目标 数学建模的重要性及应用领域 数学建模基本概念与方法论 问题抽象与建模过程 常见数学
  • Linux中断原理、上半部和下半部、硬中断和软中断

    目录 1 中断简介 1 1 作用 1 2 物理实现 1 3 中断请求线IRQ 1 4 异常 2 中断处理程序 2 1 作用 2 2 上半部和下半部 2 3 中断上下文 3 中断系统 3 1 中断机制的实现 3 2 中断控制 4 下半部和软中
  • python skimage图像处理(一)

    本文转自 python数字图像处理 基于python脚本语言开发的数字图片处理包 比如PIL Pillow opencv scikit image等 PIL和Pillow只提供最基础的数字图像处理 功能有限 opencv实际上是一个c 库
  • mipi dsi接口_Camera MIPI接口详解2

    简介 上一篇文章中 我们简单的介绍了camera接口的类型 有串口和并口和LVDS接口 以及MIPI接口一些电气特性的一些简单的技术探讨 那么我们现在常用的都是mipi接口 需要深入一点去理解MIPI接口的电气特性 有助于我们接下来理解MI
  • 类脑导航的机理、算法、实现与展望

    类脑导航 CBN 是一种新型的导航方式 其机理基于对大脑和动物行为的理解 与传统导航系统不同的是 CBN借鉴了大脑神经元与突触的工作原理 通过人工神经网络学习和模拟动物的行为 使导航过程更加具有灵活性和适应性 CBN涉及到的算法主要是基于机
  • 区分接口继承和实现继承——条款34

    表面上直截了当的public继承概念 经过严密的检查之后 发现它由两部分组成 函数接口 function interfaces 继承和函数实现 function implementations 继承 这两种继承的差异 很像本书导读所讨论的函
  • 【贪心算法】哈夫曼编码问题

    问题描述 哈夫曼编码是广泛地用于数据文件压缩的十分有效的编码方法 其压缩率通常在20 90 之间 哈夫曼编码算法用字符在文件中出现的频率表来建立一个用0 1串表示各字符的最优表示方式 一个包含100 000个字符的文件 各字符出现频率不同
  • [ Note]python字符串的json 格式化美化输出

    通过爬虫获取到的json文件是字符串 vscode的prettify json失效 参考 json dumps参数之解 python的JSON用法 dumps的各种参数用法 详细 源码 jsonfile json dumps json文件
  • volatile的讲解以及宏定义和立即数

    volatile关键字 是用于表明变量代码无法被优化 比如 int a 0 a 1 a 2 a 3 经过编译器代码优化后 int a 0 a 3 省去重复工作 debug下不会作任何优化 但这样的代码效率一般只用在调试下 release模式
  • 2013小米笔试题--异形数

    题目 一个数组里 除了三个数是唯一出现的 其余的都出现偶数个 找出这三个数中的任一个 比如数组元素为 1 2 4 5 6 4 2 只有1 5 6这三个数字是唯一出现的 我们只需要输出1 5 6中的一个就行 分析 一般这样的题目采用异或的办法