2021-06-19数组异或操作(第一天的算法刷题)
- 数组异或操作
题目是
这道题目是lecode数组里的第一题。
题目给出n就是数组的长度,
数组nums[i]就是start+2*i。
然后对数组里面的所有数进行异或运算
所以首先先介绍一下什么是异或运算
异或的数学符号为“⊕”,计算机符号为“xor”,如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
要注意的是异或运算是支持交换律和结合律的
x = x ^ y // (1)
y = x ^ y // (2)
x = x ^ y // (3)
把(1)中的 x 带入 (2)中的 x,有y = x^y = (xy)y = x(yy) = x^0 = x,同理(3)也是一样。
所以
3,3 ,7,1,9,5,9,1,7
对以上数字进行异或处理的话应该是
3^3 ^7 ^1 ^9 ^5 ^9 ^1=(3 ^ 3)^ (1^ 1)^ (9 ^9 )^(7 ^7) ^5
=0 ^ 0 ^ 0 ^ 0 ^ 5=5
说回题目
public int xorOperation(int n, int start) {int ans=start;for(i=1;i<=n;i++){ans^=start+i*2;}return ans}
n是数组长度,可以做循环次数
start,前面题目说了数组nums[i]=start+2*i,然后对数组内每一个数组进行异或
int ans=start;定义一个ans方便进行异或这里ans=0也可以
最后,循环语句
for(i=1;i<=n;i++){ans^=start+i*2;}
每一循环后等于前一个数和本次循环的数进行异或a处理
另外
本题还有另外一种解题方法在时间上比上一种要更好,更快。
感兴趣的话可以去看看思路哈。。
题目的链接
2021-06-19数组异或操作(第一天的算法刷题)相关推荐
- 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...
如何才能通过面试拿到大厂Offer? "刷leetcode!" 这是我听到最多的回答! 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是面测试.算 ...
- leetcode 1486. 数组异或操作(位运算)
给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素按位异 ...
- python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...
谨以此文记录一下自己刷题的过程,虽然技术能力一般,相信刷完整套题目自己的编程能力定会有提高,代码都是个人创作,不一定是最好的,仅供参考和交流 给定两个大小为 m 和 n 的有序数组 nums1 和 n ...
- 1486. 数组异或操作
给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素按位异 ...
- LeetCode简单题之数组异或操作
题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素 ...
- LeetCode 1486. 数组异或操作
1. 题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所 ...
- 【算法学习】1486. 数组异或操作(java / c / c++ / python / go / rust)
非常感谢你阅读本文~ 欢迎[
- 剑指offer刷题(java)|二维数组中的查找|替换空格|leetcode刷题
文章目录 前言 一.二维数组中的查找 题目 题解一 题解二 题解三 二.替换空格 题目 题解一 题解二 题解三 前言 本文主要是写了我做算法题的思路以及对其他优秀题解的自我理解. 一.二维数组中的查找 ...
- 【第一部分】01Leetcode刷题
一.二叉树的中序遍历 题目:94. 二叉树的中序遍历.94. Binary Tree Inorder Traversal 解法一: 1 class Solution { 2 public: 3 vec ...
最新文章
- laravel模板写php代码,Laravel框架之blade模板新手入门教程及小技巧
- 【问链财经-区块链基础知识系列】 第三十二课 从区块链溯源来看农产品链的设计
- PHPStorm的命令行配置成为Git bash的
- 8.IDA-数据与代码、函数互相转换
- Qt元对象QMetaObject的indexOfSlot等函数获取类方法注意问题
- 2021 ISC会上山石网科重磅发布智能下一代防火墙A系列,重新定义边界安全防御
- 大数据技术之kafka (第 3 章 Kafka 架构深入 ) 消费者组案例
- 无尽列表_8号无尽征途强势来袭,碎片商店列表更新,有136皮肤碎片的笑了
- [Flink] The file LOG does not exist on the TaskExecutor
- 论文总结:云安全研究方向及进展综述
- 计算机之父ppt,24计算机之父童年的故事.ppt
- CG标准函数库——数学函数(GPU编程与CG语言之阳春白雪下里巴人)
- Linux环境下配置虚拟ip,方法2:单网卡绑定多IP
- Leetcode 1153 字符串转化
- echart 饼图数据显示
- java 一元二次方程_如何用java编写一元二次方程的求根问题
- vivo怎么切换为Android,vivox60怎么切换系统
- Linux之LVM篇
- tl-wn821n linux驱动程序,tl-wn821n驱动下载
- PYTHON爱心代码