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

[LeetCode][Java] Single Number

2015-05-15 21:27 381 查看
题目:

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?

题目大意:

给定一个整数数组,数组中每个元素都显示两次,只有一个元素只显示一次。找出这个只显示一次的元素。

注意:

要求线性时间复杂度。

分析:

最易想到的做法是,把每个元素一次存储到HashMap中,出现重复的就删除,最后剩余的那个元素就是要找的只出现一次的元素。

代码如下:

public class Solution
{
public  int singleNumber(int[] nums)
{
Map<Integer,Integer> input=new HashMap<Integer,Integer>();
input.put(nums[0], 0);
int finalnum = 0;
int label=0;
for(int i=1;i<nums.length;i++)
{
if(input.containsKey(nums[i]))
input.remove(nums[i]);
else input.put(nums[i],i);
}
for(int i=0;i<nums.length;i++)
{
if(input.containsKey(nums[i]))
{
label=input.get(nums[i]);
finalnum=nums[label];
break;
}
}
return finalnum;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: