1. 数组异或操作
    题目是

这道题目是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数组异或操作(第一天的算法刷题)相关推荐

  1. 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...

    如何才能通过面试拿到大厂Offer? "刷leetcode!" 这是我听到最多的回答! 现在越来越多的人应聘工作时都得先刷个几十百来道题,不刷题感觉都过不了面试. 无论是面测试.算 ...

  2. leetcode 1486. 数组异或操作(位运算)

    给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素按位异 ...

  3. python两个数组合并、找出中位数_leetcode刷题记录-找出这两个有序数组的中位数(python版本)...

    谨以此文记录一下自己刷题的过程,虽然技术能力一般,相信刷完整套题目自己的编程能力定会有提高,代码都是个人创作,不一定是最好的,仅供参考和交流 给定两个大小为 m 和 n 的有序数组 nums1 和 n ...

  4. 1486. 数组异或操作

    给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素按位异 ...

  5. LeetCode简单题之数组异或操作

    题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所有元素 ...

  6. LeetCode 1486. 数组异或操作

    1. 题目 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length . 请返回 nums 中所 ...

  7. 【算法学习】1486. 数组异或操作(java / c / c++ / python / go / rust)

    非常感谢你阅读本文~ 欢迎[

  8. 剑指offer刷题(java)|二维数组中的查找|替换空格|leetcode刷题

    文章目录 前言 一.二维数组中的查找 题目 题解一 题解二 题解三 二.替换空格 题目 题解一 题解二 题解三 前言 本文主要是写了我做算法题的思路以及对其他优秀题解的自我理解. 一.二维数组中的查找 ...

  9. 【第一部分】01Leetcode刷题

    一.二叉树的中序遍历 题目:94. 二叉树的中序遍历.94. Binary Tree Inorder Traversal 解法一: 1 class Solution { 2 public: 3 vec ...

最新文章

  1. laravel模板写php代码,Laravel框架之blade模板新手入门教程及小技巧
  2. 【问链财经-区块链基础知识系列】 第三十二课 从区块链溯源来看农产品链的设计
  3. PHPStorm的命令行配置成为Git bash的
  4. 8.IDA-数据与代码、函数互相转换
  5. Qt元对象QMetaObject的indexOfSlot等函数获取类方法注意问题
  6. 2021 ISC会上山石网科重磅发布智能下一代防火墙A系列,重新定义边界安全防御
  7. 大数据技术之kafka (第 3 章 Kafka 架构深入 ) 消费者组案例
  8. 无尽列表_8号无尽征途强势来袭,碎片商店列表更新,有136皮肤碎片的笑了
  9. [Flink] The file LOG does not exist on the TaskExecutor
  10. 论文总结:云安全研究方向及进展综述
  11. 计算机之父ppt,24计算机之父童年的故事.ppt
  12. CG标准函数库——数学函数(GPU编程与CG语言之阳春白雪下里巴人)
  13. Linux环境下配置虚拟ip,方法2:单网卡绑定多IP
  14. Leetcode 1153 字符串转化
  15. echart 饼图数据显示
  16. java 一元二次方程_如何用java编写一元二次方程的求根问题
  17. vivo怎么切换为Android,vivox60怎么切换系统
  18. Linux之LVM篇
  19. tl-wn821n linux驱动程序,tl-wn821n驱动下载
  20. PYTHON爱心代码

热门文章

  1. 15个国外最佳免费图片素材网站
  2. 海思3518E开发笔记2.5——海思VI(video input)模块详解
  3. Vue源码解析-目录设计
  4. 敏捷开发中编写高质量Java代码
  5. 让div也可以获得keydown事件
  6. windows写入延缓失败怎么办?
  7. php保存图片对象,如何保存Imagick对象(php)
  8. es 常用DSL查询语序 以及springDataES对应和使用
  9. 缓存框架——Redis的哨兵机制
  10. 灵活用工与灵活就业的区别