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;
    }

    }
  • 相关阅读:
    until循环
    linux的shell使用
    shell通配符(元字符)
    linu运算
    mail邮件
    linux命令
    redis笔记
    mysql 5.7安装方法
    mysql5.7.25搭建mysql-5.7.25.tar.gz包(亲验)
    mysql数据迁移
  • 原文地址:https://www.cnblogs.com/turningli/p/10486630.html
Copyright © 2011-2022 走看看