您的位置:首页 > 编程语言 > Java开发

leetcode:136. Single Number解题报告

2017-03-04 21:08 344 查看

Single Number

1、原题

Given an array of integers, every element appears twice except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?

2、题目解析

这道题是说让我们在一个整型数组中寻找唯一一个只出现一次的数字,其它的都出现了两次。
这道题最简单的思路就是遍历数组去一个一个标记比较该数字出现了几次了。但是看其提示说应该要采用线性的算法。这样这条路就走不通了。
我们看完题目的关键点要放在其它数字出现两次这里,我们可以想到使用异或运算两个相同的数字会变为0,让后0和任何数进行异或还是原来的数,这样这题就很简答了。

3、实现

public class Solution {
public int singleNumber(int[] nums) {
int item = nums[0];
for (int i = 1; i < nums.length; i++) {
item = item ^ nums[i];
}
return item;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java leetcode 算法