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

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

    示例 1:

    输入: [2,2,1]
    输出: 1

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var singleNumber = function (nums) {
        for (let i = 0; i !== nums.length; i++) {
            let isExist = false;
            for (let j = i + 1; j !== nums.length; j++) {
                if (nums[j] === nums[i]) {
                    isExist = true;
                    break;
                }
            }
            for (let j = i - 1; j >= 0; j--) {
                if (nums[j] === nums[i]) {
                    isExist = true;
                    break;
                }
            }
            if (!isExist) {
                return nums[i];
            }
        }
    };
    

    说实话,一手强烈的自我怀疑…
    我自己都不知道到底对不对,丢进去他说我对就对了吗?很迷
    睡觉了,终于熬到周五…

    上面这个方法也太傻了,蠢到不行

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var singleNumber = function (nums) {
        let obj = {};
        for (let i = 0; i !== nums.length; i++) {
            if (obj[nums[i]] === undefined) {
                obj[nums[i]] = NaN;
            } else {
                delete obj[nums[i]];
            }
        }
        return +Object.keys(obj)[0];
    };
    

    这是一个比较好理解的方法,看了以后就学会了

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var singleNumber = function(nums) {
      let result = 0;
      nums.forEach(el => (result ^= el));
      return result;
    };
    

    这个是根本看不懂的方法,就算我百度了按位异或,我还是看不懂

  • 相关阅读:
    沟通,你都做了什么
    Markdown,你只需要掌握这几个
    一周心态-情景联想
    一周心态-漫谈计划之死
    我的Git之旅(1)---git安装、github注册以及一些基本命令
    我的20132014
    Python 笔记——4 条件控制
    Python 笔记——3 数据类型
    Python 笔记——1语法分析
    纯CSS实现兼容ie6以上的圆角头像
  • 原文地址:https://www.cnblogs.com/sbzy/p/9375218.html
Copyright © 2011-2022 走看看