[LeetCode][Java] Single Number

来源:互联网 发布:辐射4卡顿优化补丁 编辑:程序博客网 时间:2024/04/30 00:39

题目:

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;    }}


0 0
原创粉丝点击