这是今天在leetcode上看到的一道题,题目是:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次,找出那个只出现了一次的元素。
每次做题时,我第一想到的都是暴力解决方法,即用循环或者判断方法。这道题虽然属于简单类型,依旧想不粗有什么可以在尽肯能少的时间内运行完成。
在用了循环后,果然时间效率及其低。
最后,在问答评论区,找到了大神的解决思路,即按位异或的思想。短短三行代码,就完成了!
public class Solution {
public static int singleNumber(int[] nums) {
int result = 0;
for(int i = 0 ; i < nums.length ; i++ ){
result ^= nums[i];
}
return result;
}