样例
给出 [1,2,2,1,3,4,3],返回 4
挑战
一次遍历,常数级的额外空间复杂度
public class Solution {
public int singleNumber(int[] A) {
if(A == null || A.length == 0) {
return -1;
}
int rst = 0;
for (int i = 0; i < A.length; i++) {
rst ^= A[i];
}
return rst;
}
}
很好理解
比如:
0 xor 1=1;
1 xor 1=0;
也就是说对同一个字符进行两次异或运算就会回到原来的值。
我的低级做法
public class Solution {
public int singleNumber(int[] A) {
// write your code here
boolean flag=false;
for (int i=0;i<A.length;i++){
for(int j=0;j<A.length;j++){
if(A[i]==A[j]&&i!=j){
flag=true;
break;
}
}
if(flag==false){
return A[i];
}else{
flag=false;
}
}
return 0;
}
}
2018/12/24
今天开始刷算法题,实在是太骚了