标签:arr int 有关 算法 eor 异或 数组 public
设一个数组中有n个数,其中有一个数是奇数个,其他数都是偶数个,求这个奇数个数
public class Main {
public static void main(String[] args) {
// 创建一个数组,里面有两个 1,四个 2,三个 3
int arr[] = {1,2,3,2,3,2,3,2,1};
System.out.println(yi(arr));
}
public static int yi(int arr[]){
int eor = 0;
/*
* 遍历数组中的数据与 eor 异或
* 即 eor ^ [1,2,3,2,3,2,3,2,1]
* 由于异或遵循交换律和结合律 即 a^b = b^a 和 a^b^c = a^(b^c)
* 所以 eor ^ [1,2,3,2,3,2,3,2,1] = err ^ [1,1,2,2,2,2,3,3,3]
* 又有 0 ^ N = N 和 N ^ N = 0
* 最终得出结果
* */
for(int a : arr){
eor ^= a;
}
return eor;
}
}
代码来自视频学习: https://www.bilibili.com/video/BV13g41157hK?p=2
标签:arr,int,有关,算法,eor,异或,数组,public 来源: https://www.cnblogs.com/13490-/p/15513325.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。