刷题-剑指offer56

文章探讨了一种解题思路,通过异或操作来找出数组中仅出现一次的数字。由于异或的特性,相同数字相异或为0,所以当数组中大部分数字都成对出现时,遍历数组的异或结果将只剩下一个单独的数字。对于有两个不同单次出现的数字的情况,可以将数组拆分为两部分,分别异或得到这两个不同的数字。
摘要由CSDN通过智能技术生成

自然语言表达解题思路:

在知道异或能够将两个相同的数字消除为0,并且异或是不会被数字的顺序影响的。

所以如果数组只有一个数字是唯一的,而其他数字是重复两次的,那么遍历数组异或后,相同的数字消除,而会剩下唯一的那个数字。

题目中是有两个不同的数字的,所以想法就是将数组拆分成分别含有唯一一个数字的两个数组,然后异或遍历两个数组后得到这两个不同的数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值