异或的性质:

1、交换律

2、结合律(即(a^b)^c == a^(b^c))

3、对于任何数x,都有x^x=0,x^0=x

4、自反性 A XOR B XOR B = A xor  0 = A

算法:

class Solution {public int singleNumber(int[] nums) {int i,res=0;for(i=0;i<nums.length;i++){res=res^nums[i];}return res;}
}

解析过程:

这个算法中主要用到了异或的第三条性质,无论如何,res=res^nums[i]这条式子的计算结果都会以x^x^y或者x^y^x或者y^x^x这些形式出现,而按上面的性质,最终res的结果都是y,比如一组数据[4,1,2,1,2],从头开始,先是定义的res值与第一个元素异或:                                                                              0^4=4

  4接着与1异或,这里无法化简,接着与2异或,也无法化简,接着与1异或可以利用性质1和性质3消掉1,如下:

                                                                            (4^1)^2^1=4^2

同理最后有

                                                                             (4^2)^2=4

4就是结果了

算法:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。(异或符号的妙用)相关推荐

  1. 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字

    package demo;import java.util.Arrays;/** 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.*/ //num ...

  2. 一个整型数组里除了两个数字之外,其他的数字都出现了两次

    题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次 解答: 我们从头到尾异或数组中的每个数字,那么最终的结果是两个只出现一次数字的异或的结果,由于两个数字不一样,那么异或的结果肯定不为0, ...

  3. 数组排序:声明一个整型数组并填充数据,排序,输出排序后数据,倒序输出数据。

    数组排序:声明一个整型数组并填充数据,排序,输出排序后数据,倒序输出数据. int[] arr = new int[10];for (int i = 0;i<arr.length;i++){ar ...

  4. 数组-接口2-参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数;预期结果是一个整型数组

    测试接口的代码说明 适用接口:参数为一个整型数组和数组长度的整数(该数组输入和运算结果),再加一个整数:预期结果是一个整型数组 测试接口的具体代码如下: 注意红色字体,用后续小节中的接口进行替换,进行 ...

  5. C++:找出一个整型数组中最大值。

    题目概述: 找出一个整型数组中最大值. 编程: #include< iostream> using namespace std; class array_max //声明类 { publi ...

  6. 【小米校招笔试】假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈。

    2016年小米校招笔试第三题(西安站) 3 假如已知有n个人和m对好友关系(存于数字r).如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共 ...

  7. Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

    查看所有50道基础算法题请看: Java的50道基础算法题 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c ...

  8. Python 两个乒乓球队进行比赛,请编程序找出两队参赛对手的名单,不用库算法

    题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单 这题看了 ...

  9. 找出单身狗_只出现一次的数字Ⅲ

    给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次. 找出只出现一次的那两个元素.你可以按 任意顺序 返回答案. 你的算法应该具有线性时间复杂度.你能否仅使用常数空间复杂 ...

最新文章

  1. 九、数据库群集部署、配置 (二)
  2. 定义c/c++全局变量/常量几种方法的区别
  3. linux 中FTP服务器的架设
  4. mysql每组随机一条_MySql分组后随机获取每组一条数据的操作
  5. 我说分布式事务之TCC
  6. Python Pyc文件
  7. java不带package和带package的编译方式
  8. P4721 【模板】分治 FFT
  9. python常用命令格式_python常用命令有哪些
  10. java I O类大全_Java I/O最简单的几个类
  11. STP生成树的选举详细步骤、四个案列详解(附图,建议电脑观看)
  12. linux下安装mysql57_Linux下安装MySql
  13. 2018美赛D翻译从汽油驾驶到 E 驾驶( E 指电,而不是空)
  14. 保龄球计分java代码_保龄球记分程序用C#该怎么写
  15. 如何在虚拟机中VMware安装centos_6
  16. 高效文件管理-Git管理个人文件指南
  17. 解决git 中 error 10053 问题
  18. bootstrap之buttonJs
  19. java单例实例对象在springboot中实例化了2次,原因竟然是热部署的锅(记一次神奇的bug)
  20. O2O外卖网“开吃吧”投百万年流水过亿

热门文章

  1. 微信扫码后弹出在右上角浏览器打开
  2. STM32PWM调速小车速度(全网最强)
  3. 通过socket来下载一张图片
  4. pyCharm字体放大缩小快捷键
  5. 数据存储单位及转换关系
  6. ros2 点云话题订阅 c++
  7. Java编写程序模拟两个村庄共用同一口井水,编写一个Village类,该类有一个静态的int型成员变量waterAmount, 用于模拟井水的水量。
  8. 学历提升的资讯网站有哪些?在哪里可以查询自己的学历呢?
  9. PyTorch安装及配置
  10. 学习C#从俄罗斯方块开始(二)俄罗斯方块的规则和算法的简单实现