异或运算符^,筛选出数组重复元素
利用异或的:0异或任何树都得任何书,相同的数字异或得到0;
这里的例题是在长度为10的数组中,里面有1-9的顺序数字,但是有一个数字是重复的,请找出来
我们首先创建这样的一个数组
int N=10;int[] arr=new int[N];for(int i=0;i<arr.length-1;i++) {arr[i]=i+1;}arr[arr.length-1]=new Random().nextInt(N-1)+1;int index=new Random().nextInt(N);int k=arr[index];arr[index]=arr[arr.length-1];arr[arr.length-1]=k;
那我们用什么异或这个数组得到这个数组重复的元素呢?
int x1=0;for(int a:arr) {System.out.print(a+" ");}System.out.println();for(int i=1;i<N;i++) {x1=(x1^i);}
我们可以创建x1变量 x1=0^… ^ (N-1)
这样x1异或arr数组的话,不重复的元素都和x1中的元素异或得0了.重复的元素为奇数个,所以还是得原来的数.
for(int i=0;i<arr.length;i++) {x1=x1^arr[i];}
最后让我们来看看结果
6 2 3 4 5 6 7 8 9 1
6
.当然我们也有第二种方法,用一个数组记录arr数组中元素出现的个数,出现个数为2的就是我们要找的重复元素.
异或运算符^,筛选出数组重复元素相关推荐
- php array_flip() 删除数组重复元素——大彻大悟
1. php array_flip() 删除数组重复元素,如果用于一维索引数组,好理解. [root@BG-DB:~]$more arr.php <?php $arr = array('a', ...
- 前端面试高频题:删除数组重复元素的多种方法
最近在想着换工作,去了一家中关村的上市公司,面试官随便问了几个问题其中就提到了怎么删除数组元素的方法,表示这已经是第三次遇到了这个问题了,由于知识口头说说所以就随便说了下,之前用的时候都是直接找的方法 ...
- C语言试题二十二之定义了3×3的二维数组,并在主函数中赋值。函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。
1. 题目 定义了3×3的二维数组,并在主函数中赋值.函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试 ...
- 求出数组中元素的总和_数组中所有元素的总和可被给定数K整除
求出数组中元素的总和 This program will help to find out the sum of elements in an array which is divisible by ...
- 原地移除数组重复元素问题总结
原地移除数组重复元素问题总结 注:本文章中的总结和源代码均来自labuladong的算法秘籍,写下此文的目的仅是为了自己复习所用.版权归原作者所有.如有侵权,请联系删除. 类型一:有序数组/链表去重 ...
- java数组找出重复元素及次数_Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置...
面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...
- Java查找数组重复元素,并打印重复元素、重复次数、重复元素位置
面试题查找重复元素并打印重复次数和重复位置,一顿懵逼,回来死磕写下来,打印指定重复次数和最大次数,其他在此基础上可以再更新 package sort; import org.testng.annota ...
- LeetCode-数组-删除有序数组重复元素
题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...
- 汇编语言LENGTHOF运算符:计算数组中元素的个数
LENGTHOF 运算符计算数组中元素的个数,元素个数是由数组标号同一行出现的数值来定义的.示例如下: .data byte1 BYTE 10,20,30 array1 WORD 30 DUP (?) ...
最新文章
- node.js 验证路径有效性_怎样识别光伏谐波路径?试试这个算法
- CUDA学习(十五)
- 精益业务分析宣言解读
- Brocade 光纤交换机常用命令
- iterm2一键登陆服务器(门神权限不用每次都输密码进行验证)
- etcd和redis的比较和日常使用场景
- 西门子s7 计算机通讯,PLC与计算机通讯连接
- linux mysql ssh通道_通过SSH通道来访问MySQL
- python数据挖掘的基本流程有哪些?
- 金蝶星空支持mysql吗_金蝶云星空K3 CLOUD SQL 数据库优化
- 关于java的文件操作
- java public aspect_ASPECT Java的使用
- 烤仔TVのCCW | 区块链中的 Merkle 树
- 在世界球场一球成名:HMS 生态为游戏开发者送出的助攻
- 在学习爬虫的路上,有多少坑在前边
- ugui scrollview 3d特效 裁减
- 使用PowerBuilder 9编绎DLL类型,有点问题.处理过程记录如下.”Error opening file ‘c:\windows\system32\cgen\en32t.h’”
- 罗马数字转换成阿拉伯数字
- 没见面,未说话,TA却在风雨里更懂你
- 2004全国城市GDP排名(前40名)