Single Number

/ java / 没有评论 / 366浏览

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?

题目意思:给一个整数数组,除了一个元素只出现一次,其他元素都出现两次,找出那个只出现一次的整数。

要求时间复杂度是n并且不用额外的内存。

我的Java代码:

 class Solution {
    public int singleNumber(int[] nums) {
        Set<Integer> s1 = new HashSet<Integer>();
        for(Integer n:nums){
        	if(s1.contains(n)){
        		s1.remove(n);
        	}else{
        		s1.add(n);
        	}
        }
        List<Integer> list = new ArrayList<Integer>(s1);
        return list.get(0);
    }
}
点击这里给我发消息
嘿!有什么能帮到您的吗?