Leetcode 136 只出现一次的数字 按位异或

 

  设计逻辑运算,真值表达式为:

复制代码
    public final int singleNumber0(int[] nums) {
        int x = 0, y = 0;
        for (int i = 0; i < nums.length; i++) {
            int z = nums[i];
            x = (x & ~y & ~z) | (z & (x ^ y));
            y = (~x & (y ^ z)) | (x & ~y & z);
        }
        return y;
    }
复制代码

  更简便的解法为直接异或,因为只需要排除出现两次的元素:

    public final int singleNumber(int[] nums) {
        int re = 0;
        for (int i = 0; i < nums.length; i++) {
            re ^= nums[i];
        }
        return re;
    }

 

  JS 自定义逻辑运算:

复制代码
var singleNumber = function(nums) {
    let x,y = 0;
    for(let i=0;i<nums.length;i++){
        let z = nums[i];
        x=(x&~y&~z)|(~x&y&z)|(x&~y&z);
        y=(~x&y&~z)|(~x&~y&z)|(x&~y&z);
    }
    return y;
};
复制代码

  JS 按位异或:

var singleNumber = function(nums) {
    let re = 0;
    for(let i=0;i<nums.length;i++){
        re^=nums[i];
    }
    return re;
};

 

posted @   牛有肉  阅读(165)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示