哈哈,今天做到一道看起来很简单,但其实很巧妙的一道题
那么一开始的我想用计数器概念来做,但是发现行不通,题目条件有点苛刻,最后突然想到了一开始博哥给我讲的^运算符,
它的运算规律是这样的
涉及到异或运算,对于这道题,你应该了解异或有什么样性质
- 任何数与0异或,都为原数
- 与本身自己异或,则为0
- 交换律和结合律(解决这道题的关键),你把整个循环的计算写成数学运算过程,你会发现要利用交换律,结合律,可以实现这道题的要求
所以,代码和结果如下
啊啊做出来超级有成就感的!
public static void main_func(String[] args) {
int[] array = {1,2,2,1,5,4,5};
System.out.println(func(array));
}
public static int func (int[] array){
int num=0;
for(int i=0;i<array.length;i++){
num^=array[i];
}
return num;
}
}
希望能帮到小伙伴
感谢阅读 ~