leetcode位运算(1486. 数组异或操作)
前言
经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。后续开始专项练习。
描述
给你两个整数,
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提示:
1 <= n <= 1000
0 <= start <= 1000
n == nums.length
实现原理与步骤
初始化res为0.按规则计算对应数值后与res异或。
代码实现
class Solution {
public int xorOperation(int n, int start) {
int res=0;
for(int i=0;i<n;i++){
//初始化res为0应用的是一个数异或0还是这个数
res^=start+2*i;
}
return res;
}
}
原文地址:https://blog.csdn.net/acuteeagle01/article/details/140578931
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!