博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程题—面试题56 - I. 数组中数字出现的次数
阅读量:2441 次
发布时间:2019-05-10

本文共 669 字,大约阅读时间需要 2 分钟。

题目描述
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2] 限制:2 <= nums <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目分析

方法1

1、使用hashmap或者hashset存储,只需遍历一遍即可得出正确答案

但题目要求空间复杂度为o(1),不符合要求

方法2

1、使用异或^,将所有元素异或一遍,结果的某一位肯定不为0

2、使用&判断出具体哪一位不为0,例如第三位,则tmp=0010
3、然后遍历数组,将每一位数字和tmp进行&操作,如果为0则分为a组,否则为b组
4,将a组中的元素进行异或就得到结果1,将b组中的元素进行异或得到结果2

通过代码
class Solution {
public int[] singleNumbers(int[] nums) {
int[] res= new int[2]; int flag=0; for(int i=0;i
你可能感兴趣的文章
响应式编程 函数式编程_Phunkie进行函数式编程:PHP中的解析器组合器
查看>>
composer 源l:_Visual Composer:名称更改的令人费解的故事
查看>>
使用React和PHP开发游戏:它们的兼容性如何?
查看>>
哈巴狗入门指南
查看>>
js设置css自定义变量_CSS变量实用指南(自定义属性)
查看>>
devtools使用_优化CSS:使用DevTools调整动画性能
查看>>
http建立个人服务器工具_建立网站和页面的最佳7种工具
查看>>
前端框架浏览器兼容解决方案_前端框架:定制与即用型解决方案
查看>>
驯服Snoo:使用Reddit API
查看>>
php页面不渲染显示源代码_PHP如何执行-从源代码到渲染
查看>>
Sourcehunt 17.1:值得关注的7个有趣PHP软件包
查看>>
使用转发装饰器实现模块化架构
查看>>
安恒 web类这可不是难题_如何消除您的前5个Web设计难题
查看>>
旅行者 问题_旅行者-管理员UI可以使Laravel更加平易近人吗?
查看>>
口才配置_快速提示:口才观察者的便捷魔力
查看>>
git 应用程序本身更新_如何使用Git通过SFTP正确部署Web应用程序
查看>>
回购股份超过回购价格_Sourcehunt:本月创意和6个有趣的回购!
查看>>
css背景图像属性_如何将CSS3转换应用于背景图像
查看>>
phpseclib_Phpseclib:通过PHP与远程服务器安全地通信
查看>>
fig-tlo_PHP-FIG,Quo Vadis?
查看>>