首页 > 其他分享 >多数元素

多数元素

时间:2023-02-05 19:56:53浏览次数:32  
标签:count const nums 元素 dic num let 多数

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

/**
 * 字典方式
 */
const majorityElement = (nums) => {
    let dic = {}
    nums.forEach(i => {
        dic[i] = dic[i] || 0
        dic[i]++
    })
    return Object.keys(dic).filter(i => dic[i] > nums.length / 2)
};

/**
 * 取中值方式
 */
const majorityElement = (nums) => {
    nums.sort((x, y) => x - y)
    return nums[Math.floor(nums.length / 2)]
};

/**
 * 消耗方式
 */
const majorityElement = (nums) => {
    const len = nums.length
    let num = nums[0]
    let count = 1
    for (let i = 1; i < len; i++) {
        const v = nums[i]
        const nv = nums[i + 1]
        if (v === num) {
            count++
        } else {
            count--
            if (count === 0) {
                num = nv
            }
        }
    }
    return num
};

  

标签:count,const,nums,元素,dic,num,let,多数
From: https://www.cnblogs.com/zhenjianyu/p/17093854.html

相关文章

  • selenium一旦切换焦点到别的窗口就会检测不到元素
    提问:selenium一旦切换焦点到别的窗口就会检测不到元素事情是这样,在用selenium做一些模拟点击的操作流程。XPATH元素都是正确的,能正常运行,也能检测到元素存在。但是运行的......
  • 算法刷题-移除元素、分数到小数、整数转罗马数字
    移除元素给你一个数组nums_和一个值val,你需要原地移除所有数值等于val_的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原......
  • 4.6链表使元素的追加和删除更容易
    在数组的各个元素中,除了数据的值之外,通过为其附带上下一个元素的索引,即可实现链表。数据的值和下一个元素的索引组合在一起,就构成了数组的一个元素。这样,数组元素相连就构......
  • HTML5 语义化元素
    本文我们要来介绍一个抽象的知识点-语义化。什么是语义化,浅显的来说就是使用合适的语法来实现相应的功能,这里说的合适并非是从性能、数据结构、算法等深度层面,而是从阅读和......
  • display:inline-block产生元素间空隙原理和解决方法
    写轮播图时偶遇一个排版问题,用inline-block会产生无法通过margin=0消除的空隙原理元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处......
  • 下一个更大元素II
    给定一个循环数组 nums ( nums[nums.length-1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的下一个更大元素。数字x 的下一个更大的元素是按数组遍历顺......
  • 下一个更大元素
    nums1 中数字 x 的下一个更大元素是指 x 在 nums2中对应位置右侧的第一个比 x 大的元素。给你两个没有重复元素的数组 nums1和 nums2,下标从0开始......
  • Python之字典删除元素(6种方式)
    文中代码smart_girl={"name":"yuanwai","age":25,"address":"Beijing"} 第一种方式:pop()方法注意:找不到对应的key,pop方法会抛出异常KeyErrorsmart_gi......
  • 代码随想录算法Day03| 链表理论基础 203.移除链表元素 707.设计链表 206.反转链表
    链表理论基础链表分为单链表,双链表,循坏链表。链表中的节点在内存中不是连续分布的,而是散乱分布在内存中的某地址上,分配机制取决于操作系统的内存管理。链表的长度可......
  • 用指针来输出字符串元素的个数--C语言
    现在的状态就是,心里很空虚,感觉干啥都不得意,学东西学不进去,玩也玩不好,但是现实告诉我一定要想办法升华自己intmy_strlen(char*str){char*start=str;char*end=str......