算法题每日一练---第49天:数组异或操作

简介: 给你两个整数n 和 start 。

3.png

一、问题描述


给你两个整数nstart 。数组 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.


考察

位运算简单题型
建议用时5~20min


三、问题分析


本题是位运算的第4题,没了解过位运算相关知识点可以看这一篇文章,讲解比较详细:

算法题每日一练---第45天:位运算


这一题本质上就是考察对位运算中异或运算法则的熟练使用,对于异或而言:

符号:^运算规则:两个二进制位相反为1,相同为0示例:1001^0111=1110

接下来,我们只需要运用简单的for循环先将数组的值计算出来,随之进行异或运算,最后输出结果即可!


四、编码实现


classSolution {
public:
intxorOperation(intn, intstart) {
inti,ans;//初始化定义vector<int>nums(n+1);//定义一维数组存储规律值for(i=0;i<n;i++)//for循环        {
nums[i]=start+2*i;//规律计算if(i==0)
            {
ans=nums[0];//初值赋值            }
elseans=ans^nums[i];//异或计算        }
returnans;//输出结果    }
};


五、测试结果13.png

相关文章
|
6天前
|
算法 测试技术
【算法】二分算法——寻找旋转排序数组中的最小值
【算法】二分算法——寻找旋转排序数组中的最小值
|
6天前
|
算法
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置
|
4天前
|
存储 算法 Java
深入算法基础二分查找数组
文章深入学习了二分查找算法的基础,通过实战例子详细解释了算法的逻辑流程,强调了确定合法搜索边界的重要性,并提供了Java语言的代码实现。
深入算法基础二分查找数组
|
6天前
|
算法
【算法】模拟算法——外观数组(medium)
【算法】模拟算法——外观数组(medium)
|
6天前
|
算法
【算法】前缀和——除自身以外数组的乘积
【算法】前缀和——除自身以外数组的乘积
|
6天前
|
算法
【算法】前缀和——寻找数组的中心下标
【算法】前缀和——寻找数组的中心下标
|
11天前
|
算法 Java 索引
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
22 0
|
11天前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
10 0
|
2月前
|
存储 算法 调度
【数据结构与算法】详解循环队列:基于数组实现高效存储与访问
【数据结构与算法】详解循环队列:基于数组实现高效存储与访问
|
1月前
|
机器学习/深度学习 存储 算法
数据结构与算法:数组的操作
数据结构与算法:数组的操作

热门文章

最新文章