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

    }
  • 相关阅读:
    js 克隆一个对象或数组
    css 透明png背景蓝色解决
    修改默认的ajaxStart, ajaxStop 显示loading
    用css定义长字符串的截断显示
    chrome 不支持小字号的文字解决
    fiddler response 乱码
    U盘装机神器UniversalUSBInstaller
    vmware虚拟机内存分配
    chrome https添加信任
    css tabindex
  • 原文地址:https://www.cnblogs.com/turningli/p/10486630.html
Copyright © 2020-2023  润新知