zoukankan      html  css  js  c++  java
  • LeetCode——Single Number III

    Description:

    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.

    For example:

    Given nums = [1, 2, 1, 3, 2, 5], return [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?

    在线性时间复杂度下,找到两个只出现一次的元素。结果没有先后顺序。

    既然是只出现一次且不考虑顺序,那么就可以机智的使用set的无序不可重复的特性。

    public class Solution {
        public int[] singleNumber(int[] nums) {
            Set<Integer> set = new HashSet<Integer>();
            
            for(int i : nums) {
                if(!set.add(i)) {
                    set.remove(i);
                }
            }
            int[] res = new int[2];
            int i = 0;
            for(int e : set) {
                res[i++] = e;
            }
            
           return res;
        }
    }
  • 相关阅读:
    卡特兰数
    割点和桥
    子序列(超级水)
    react 进行时
    又开启react之路
    关于特殊字体
    react 组件传值
    git 的安装和项目建立
    ES6 let and const
    js封装的一行半显示省略号(字数自由控制)
  • 原文地址:https://www.cnblogs.com/wxisme/p/4842896.html
Copyright © 2011-2022 走看看