LeetCode刷题EASY篇Single Number

题目

Given a non-empty 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?

Example 1:

Input: [2,2,1]
Output: 1

Example 2:

Input: [4,1,2,1,2]
Output: 4

我的解法

hashmap统计次数,遍历搞定,注意map的遍历,熟悉一下:

class Solution {
    public int singleNumber(int[] nums) {
        Map<Integer,Integer> map=new HashMap();
        for(int i=0;i<nums.length;i++){
            if(map.containsKey(nums[i])){
                map.put(nums[i],map.get(nums[i])+1);
            }
            else{
                map.put(nums[i],1);
            }
        }
        for(Map.Entry entry : map.entrySet()){
            if((Integer)entry.getValue()==1){
                return (Integer)entry.getKey();
            }
        }
        return 0;
        
    }
}

猜你喜欢

转载自blog.csdn.net/hanruikai/article/details/84885430