码迷,mamicode.com
首页 > 其他好文 > 详细

260. Single Number III

时间:2019-10-19 10:06:25      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:nts   int   algorithm   single   i++   rect   get   and   elements   

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

Example:

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

Note:

  1. The order of the result is not important. So in the above example, [5, 3] is also correct.
  2. Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?
class Solution {
    public int[] singleNumber(int[] nums) {
        List<Integer> list = singleNumber1(nums);
        int[] res = new int[list.size()];
        for(int i = 0; i < list.size(); i++){
            res[i] = list.get(i);
        }
        return res;
    }
    
        public List<Integer> singleNumber1(int[] nums) {
        List<Integer> list = new ArrayList();
        Map<Integer, Integer> map = new HashMap();
        for(int i : nums){
            int value = map.getOrDefault(i, 0);
            map.put(i, value + 1);
        }
        for(Map.Entry<Integer, Integer> entry : map.entrySet()){
            if(entry.getValue() == 1) list.add(entry.getKey());
        }
        return list;
    }
}

调用1中map方法,屡试不爽

class Solution {
    public int[] singleNumber(int[] nums) {
    if(nums == null || nums.length == 0) return new int[0];
    
    Map<Integer, Integer> map = new HashMap<>();
    
    for(int i = 0; i < nums.length; i++)
    {
        if(!map.containsKey(nums[i]))
        {
            map.put(nums[i], 1);
        }else{
            map.remove(nums[i]);
        }
    }
    
    int[] output = new int[2];
    
    int n = 0;
    
    for(int i : map.keySet())
    {
        output[n++] = i;
    }
    
    return output;
    
}
    }

或者稍微优化一下。

260. Single Number III

标签:nts   int   algorithm   single   i++   rect   get   and   elements   

原文地址:https://www.cnblogs.com/wentiliangkaihua/p/11702705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!