leetcode1486 官方降低时间复杂度方法

1486. 数 组异或操作 - 力扣(LeetCode)

题目:

异或运算:

相同为0,不同为1

即:

0 ^ 0 = 0 ,

0 ^ 1 = 1,

1 ^ 0 = 1 ,

1 ^ 1 = 0 ,

直接解法:

java 复制代码
class Solution {
    public int xorOperation(int n, int start) {
        int result = 0;
        for(int i = 0;i<n;i++)
        {
            int num = start + 2*i;
            result ^=num;
        }
        return result;
    }
}

降低时间复杂度

java 复制代码
class Solution {
    public int xorOperation(int n, int start) {
        int s = start >> 1, e = n & start & 1;
        int ret = sumXor(s - 1) ^ sumXor(s + n - 1);
        return ret << 1 | e;
    }

    public int sumXor(int x) {
        if (x % 4 == 0) {
            return x;
        }
        if (x % 4 == 1) {
            return 1;
        }
        if (x % 4 == 2) {
            return x + 1;
        }
        return 0;
    }
}

作者:力扣官方题解
链接:https://leetcode.cn/problems/xor-operation-in-an-array/solutions/371258/shu-zu-yi-huo-cao-zuo-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关推荐
小猫猫猫◍˃ᵕ˂◍几秒前
备忘录模式:快速恢复原始数据
android·java·备忘录模式
liuyuzhongcc9 分钟前
List 接口中的 sort 和 forEach 方法
java·数据结构·python·list
五月茶13 分钟前
Spring MVC
java·spring·mvc
sjsjsbbsbsn22 分钟前
Spring Boot定时任务原理
java·spring boot·后端
yqcoder23 分钟前
Express + MongoDB 实现在筛选时间段中用户名的模糊查询
java·前端·javascript
菜鸟蹦迪1 小时前
八股文实战之JUC:ArrayList不安全性
java
2501_903238651 小时前
Spring MVC配置与自定义的深度解析
java·spring·mvc·个人开发
逻各斯1 小时前
redis中的Lua脚本,redis的事务机制
java·redis·lua
计算机毕设指导61 小时前
基于Springboot学生宿舍水电信息管理系统【附源码】
java·spring boot·后端·mysql·spring·tomcat·maven
计算机-秋大田1 小时前
基于Spring Boot的兴顺物流管理系统设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·spring·课程设计