首页 > 编程语言 > 详细

【leetcode每日一题】数组异或操作

时间:2021-05-07 10:30:27      阅读:13      评论:0      收藏:0      [点我收藏+]

数组异或操作

1、题目描述

给你两个整数,n 和 start 。

数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。

请返回 nums 中所有元素按位异或(XOR)后得到的结果。

示例1:

输入:n = 5, start = 0
输出:8
解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。
     "^" 为按位异或 XOR 运算符。

示例2:

输入:n = 4, start = 3
输出:8
解释:数组 nums 为 [3, 5, 7, 9],其中 (3 ^ 5 ^ 7 ^ 9) = 8.

示例3:

输入:n = 1, start = 7
输出:7

示例4:

输入:n = 10, start = 5
输出:2

2、算法思想

主要就是从第0个数开始就依次和别的数进行异或比较,最终得到我们最后的数

3、代码实现

package com.java;

public class Day35_Solution {
    public int xorOperation(int n, int start) {
        int sum = start;
        for (int i=1;i<n;i++) {
            sum = sum ^ (start + 2 * i);
        }
        return sum;
    }
}

【leetcode每日一题】数组异或操作

原文:https://www.cnblogs.com/huangwenchao0821/p/14737691.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!