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

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

  • 相关阅读:
    入门OJ 4187【周末舞会】
    入门OJ 1532【排队取款】
    洛谷 P3029 [USACO11NOV]【牛的阵容Cow Lineup】
    洛谷 P1638【逛画展】
    入门OJ 1256【排队】
    PKU 1945【Power Hungry Cows】
    RocketMQ重试机制和消息
    Java操作RocketMQ
    RocketMQ概述
    重定向机制
  • 原文地址:https://www.cnblogs.com/sbzy/p/9375218.html
Copyright © 2011-2022 走看看