我是靠谱客的博主 贪玩奇迹,最近开发中收集的这篇文章主要介绍【leetcode】给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
样例
给出 [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
今天开始刷算法题,实在是太骚了
最后
以上就是贪玩奇迹为你收集整理的【leetcode】给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。的全部内容,希望文章能够帮你解决【leetcode】给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复