zoukankan      html  css  js  c++  java
  • LeetCode136---只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    说明:

    你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?


    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.stream.IntStream;

    /**
    * @AUTHOR:LKR
    * @DATE:2019/3/6
    * @DESCRIPTION:只出现一次的数字
    **/
    public class OnlyOneNum136 {
    //执行用时: 32 ms,内存消耗: 46.1 MB
    public int singleNumber(int[] nums) {
    Map<Integer,Integer> map = new HashMap<Integer,Integer>();
    for(int i=0;i<nums.length;i++){
    if(map.containsKey(nums[i])){
    int value = map.get(nums[i]);
    map.put(nums[i],value+1);
    }
    else map.put(nums[i],1);
    }
    int key = 0;
    for(Map.Entry<Integer,Integer> entry:map.entrySet()){
    if(entry.getValue().equals(1)){
    key = entry.getKey();
    }
    }
    return key;
    }

    //执行用时: 80 ms,内存消耗: 43.5 MB
    public int singleNumber2(int[] nums) {
    return Arrays.stream(nums).reduce(0,(left, right) -> left ^ right);
    }

    //执行用时: 1 ms,内存消耗: 39.6 MB
    public int singleNumber3(int[] nums) {
    int result = 0;
    for(int i = 0;i<nums.length;i++){
    result = result ^ nums[i];
    }
    return result;
    }

    }
  • 相关阅读:
    1309:【例1.6】回文数(Noip1999)
    1168:大整数加法
    1308:【例1.5】高精除
    邻接表存图
    [NOIP2010]关押罪犯(并查集)
    [NOI2001]食物链(并查集)
    最小生成树-Prim算法和Kruskal算法[转]
    [BOI2003]团伙(并查集)
    超有爱的并查集[转]
    [ZJOI2006]三色二叉树 (树形dp)
  • 原文地址:https://www.cnblogs.com/turningli/p/10486630.html
Copyright © 2011-2022 走看看