• LeetCode Javascript实现 169. Majority Element 217. Contains Duplicate(两个对象比较是否相等时,如果都指向同一个对象,a==b才是true)350. Intersection of Two Arrays II


    169. Majority Element

    /**
     * @param {number[]} nums
     * @return {number}
     */
        var majorityElement = function(nums) {
        var hash = {};
        var y=-1,z;
        //注意这里的方括号,利用变量访问对象属性时要用方括号
        for(var i=0;i<=nums.length-1;i++){
            if(hash[nums[i]]){
                hash[nums[i]]++;
            }else{
                hash[nums[i]]=1;
            }
        }
        for(var x in hash){
            if(y<hash[x]){
                y=hash[x]
                z=x;
            }
        }
        return Number(z);
    };

    利用了从上一题那里学到的哈希表。


    217. Contains Duplicate

    /**
     * @param {number[]} nums
     * @return {boolean}
     */
    var containsDuplicate = function(nums) {
     //   if(nums==[]){
     //       return false;
     //   }
        var vain = [];
        for(var i=0;i<nums.length;i++){
            if(vain.indexOf(nums[i])==-1){
                vain.push(nums[i]);
            }
        }
        if(vain.join("")==nums.join("")){
        return false;
        }
        return true;
    };

    睡前再刷一题,这题我用了数组去重。。反正效率很低,大约超过4%的人。。但是这种情况下依旧要注意当数组a和数组b作比较时,即使a=[1],b=[1],a==b的布尔运算结果却是false!


    350. Intersection of Two Arrays II

    /**
     * @param {number[]} nums1
     * @param {number[]} nums2
     * @return {number[]}
     */
        var intersect = function(nums1, nums2) {
            var small = nums1.length<=nums2.length?nums1:nums2;
            var big =  nums1.length<=nums2.length?nums2:nums1;
            var newarr = [];
            var i, dict = {};
            for(i = 0; i < big.length; i++){
             if(!dict[big[i]]){
                 dict[big[i]] = 1;
             }else{
                 dict[big[i]]++;
             }
             }
    
            for(i = 0; i < small.length; i++){
             if(!dict[small[i]] || dict[small[i]] === 0){
                 
             }else{
                 dict[small[i]]--;
                 newarr.push(small[i]);
             }
        }
    
    
         return newarr;
        };

    这题又用到哈希表,效率很高,大约超过96%的人。

  • 相关阅读:
    socket (一)
    yield生成器及字符串的格式化
    python模块(json和pickle模块)
    python标准模块(time、datetime及hashlib模块)
    python标准模块(os及sys模块)
    python模块简介
    python --> 正则表达式
    python --> 递归 以及装饰器
    python基础知识(四)
    python基础知识(三)
  • 原文地址:https://www.cnblogs.com/cndotabestdota/p/5745969.html
Copyright © 2020-2023  润新知