其他分享
首页 > 其他分享> > LeetCode 0136 Single Number

LeetCode 0136 Single Number

作者:互联网

原题传送门

1. 题目描述

2. Solution 1

1、思路分析
使用异或运算,运算法则
1) 归零律: a xor a = 0
2) 恒等律: a xor 0 = a
3) 交换律: a xor b = b xor a
4) 自反率: a xor b xor a = b
由1)、2) ,令res初始时为0,遍历nums,工作变量为num,res与所有的num进行异或运算。

2、代码实现

package Q0199.Q0136SingleNumber;

public class Solution {
    public int singleNumber(int[] nums) {
        // 0 ^ i = i (for all i in R, i not 0)
        // i ^ i = 0 (for all i)
        int res = 0;
        for (int num : nums)
            res ^= num;
        return res;
    }
}

3、复杂度分析
时间复杂度: O(n)
空间复杂度: O(1)

标签:0136,xor,nums,int,res,复杂度,Single,num,LeetCode
来源: https://www.cnblogs.com/junstat/p/16294386.html