首页 > 编程语言 > 详细

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现偶数次。找出那个只出现了一次的元素。

时间:2020-07-26 14:42:00      阅读:82      评论:0      收藏:0      [点我收藏+]

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。

按位异或的3个特点:

  (1) 0^0=0,0^1=1      0异或任何数=任何数

  (2) 1^0=1,1^1=0   1异或任何数-任何数取反

  (3) 任何数异或自己=把自己置0

 如果是一个偶数^1,那么答案是偶数+1.如果是一个奇数^1,那么答案是奇数-1

func main() {

    var as = []int {2,2,3,5,5}

   b := 0
   for _,c :=range as {
      b = b ^c
   }
fmt.Println(b)
}

println:3

 

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现偶数次。找出那个只出现了一次的元素。

原文:https://www.cnblogs.com/forgo/p/13380076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!