今天在上力扣网的时候突然看到了一道非常经典且有趣的算法题 ,在这里我给大家分享一下我做这道题的时候的一些思路。
题目要求找出第一个数组相对于第二个数组消失的数字,这题啊非常有意思,一上来我就想到了一种非常锉的方法,这不就是先排序然后一个一个对比,找到不一样的那个数字不就好了嘛,后来当我写完后提交,发现没通过,原因是时间复杂度超标了,这这这,还给我把时间限制得死死的,那我只能想另外的方法了。在这里大家先别急着往下看,先思考两分钟,看能不能想到。
对,没错,那就是用异或的方法,我先创建一个ret等于0,先把第一个消失了数字的数组异或到0上面去,因为0异或任何数都等于他本身嘛,没影响,然后再把第二个没消失数字的数组异或到ret上面去,大家想一下,这第一个数组和第二个数组就只有消失了那个数字没有成对出现,而且相同的数异或之后是不是等于0,不同为1,所以最后的结果是不是就是把第二个数组异或到ret上面去之后ret的值啊,这就出来了。具体操作如下:
在这里也给大家分享一下我的代码,写的不好,勿喷