【LeetCode】—— 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1]
输出: 1
示例 2:

输入: [4,1,2,1,2]
输出: 4

 1 class Solution {
 2     public int singleNumber(int[] nums) {
 3         // 用异或运算
 4         // 0和任何数字疑惑都是数字本身
 5         int result = 0;
 6         for (int num:nums) {
 7             result ^= num;
 8         }
 9         return result;
10     }
11 }

 

解题关键:

利用异或运算

1.0和任何数异或,结果都是这个数本身

2.相同位异或是0,不同为1

posted @ 2021-11-15 08:04  吾辈当奋斗-生生不息  阅读(24)  评论(0)    收藏  举报