题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找猎谆承克出那个只出现了一次的元素。本篇经验将器皆阄诟分享两个算法,一个是哈希表算法,一个是异或运算算法,相比而言,后者思路更巧妙,并且时间复杂度更好。
工具/原料
Eclipse
JDK1.8
方法/步骤
1、哈希表算法算法思路佼沣族昀:遍历数组,判断哈希表中是否存在该元素,如果存在,则从哈希表中删除该元素,如果不存在,则将该元素添加到哈希表中,遍历结束,哈希表中只会剩下那个只出现一次的元素。
2、编写测试代码,并运行图示,主方法中构建两个符合条件的数组,并调用哈希算法找出那个只出现一次的元素,观察控制台的输出结果,符合预期。
3、平台提交哈希算法图示,测试通过,但该算法时间复杂度表现较差
4、异或运算算法算法思路:对于两个相同的整数进行异或运算,会返回0,0与任戾态菩痃何整数元素进行异或运算,会返回该元素,矣喾动痞并且异或运算满足数字运算的交换定律。运用该思路,将数组元素逐个进行异或运行,最终即剩余那个只出现一次的元素。
5、编写测试代码,测试异或运算算法图示,构建两个符合条件的数组,并调用异或运算算法获取那个只出现一次的元素,观察控制台输出,符合预期
6、平台提交异或运算算法图示,提交算法,测试通过,相比哈希算法,时间复杂度也得到很大改进。