返回顶部
首页 > 资讯 > 前端开发 > JavaScript >前端JavaScript多数元素的算法详解
  • 650
分享到

前端JavaScript多数元素的算法详解

2024-04-02 19:04:59 650人浏览 八月长安
摘要

目录题目:多数元素方法一:map 实现方法二:排序题目:多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 

题目:多数元素

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

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

  示例 1:

输入: nums = [3,2,3]
输出: 3

示例 2:

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

提示:

n == nums.length

1 <= n <= 5 * 104

-109 <= nums[i] <= 109

解:

方法一:map 实现

通过一遍map,将所有出现元素和他们出现的次数进行存储,因为map的唯一性,然后对其进行一次遍历,找出最大值,第一次map操作时间复杂度为o(1),第二次而o(n),所以总体加起来为O(n); 但是由于开辟了一个map空间,空间复杂度同样是o(n)


var majorityElement = function(nums) {
    let map = new Map()
    for(let i=0;i<nums.length;i++){
        if(map.has(nums[i])){
            map.set(nums[i],map.get(nums[i])+1)
        }else{
           map.set(nums[i],1)
        }
    }

    for(let [key,val] of map.entries()){
        if(val>nums.length/2){
            return key
        }
    }
};

方法二:排序

思路:排序数组,如果有一个数字出现的频率大于n/2,则在数组nums.length / 2的位置就是这个数

复杂度分析:时间复杂度:O(nlogn),快排的时间复杂度。空间复杂度:O(logn),排序需要logn的空间复杂度

var majorityElement = function (nums) {
    nums.sort((a, b) => a - b);
    return nums[Math.floor(nums.length / 2)];
};

以上就是前端javascript多数元素的算法详解的详细内容,更多关于JavaScript多数元素算法的资料请关注编程网其它相关文章!

--结束END--

本文标题: 前端JavaScript多数元素的算法详解

本文链接: https://lsjlt.com/news/153951.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 前端JavaScript多数元素的算法详解
    目录题目:多数元素方法一:map 实现方法二:排序题目:多数元素 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ...
    99+
    2024-04-02
  • 前端JavaScript多数元素的算法实例分析
    这篇文章主要介绍“前端JavaScript多数元素的算法实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端JavaScript多数元素的算法实例分析”文章能帮助大家解决问题。题目:多数元素给...
    99+
    2023-07-02
  • JavaScript前端中的伪类元素before和after使用详解
    目录1.基本用法2.样式修改3.清除浮动4.content属性1、string2、attr()3、url()/uri()4、counter()before/after伪类相当于在元素...
    99+
    2023-02-21
    JS before和after JS伪类元素
  • javascript一维数组元素的和的计算方法
    这篇文章将为大家详细讲解有关javascript一维数组元素的和的计算方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法:1、用“for(var i=0;i<数...
    99+
    2024-04-02
  • 微前端之Web组件自定义元素示例详解
    目录我们知道的Web组件使用名称规范组件传参数并可以写模板包括js和cssShadow Dom 影子节点类中的构造函数和钩子函数getter/setter属性和属性反射扩展原生 HT...
    99+
    2024-04-02
  • JavaScript前端中的伪类元素before和after如何使用
    今天小编给大家分享一下JavaScript前端中的伪类元素before和after如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2023-07-05
  • JavaScript更改元素、删除元素、拼接数组的方法
    今天小编给大家分享一下JavaScript更改元素、删除元素、拼接数组的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所...
    99+
    2024-04-02
  • JavaScript数组元素操作的方法
    这篇文章主要介绍了JavaScript数组元素操作的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数组元素操作的方法文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • javascript删除数组元素的方法
    这篇文章给大家分享的是有关javascript删除数组元素的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。删除方法:1、length属性从数组末尾删除元素,语法“数组名.length=值”;2、delete关...
    99+
    2023-06-15
  • 前端JavaScript算法找出只出现一次的数字
    目录题目:只出现一次的数字解法一:用 map 来解:解法二:用 异或 解题目:只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出...
    99+
    2024-04-02
  • 前端算法之TypeScript包含min函数的栈实例详解
    目录前言思路梳理实现代码示例代码前言 基于数据结构: “栈”,实现一个min函数,调用此函数即可获取栈中的最小元素。在该栈中,调用min、push、pop的时...
    99+
    2024-04-02
  • 后端算法题解LeetCode前缀和示例详解
    目录面试题 01.09. 字符串轮转方法一:模拟思路题解方法二:搜索子字符串思路题解1480. 一维数组的动态和方法一:前缀和思路题解724. 寻找数组的中心下标方法一:前缀和思路解...
    99+
    2024-04-02
  • JavaScript常用数组元素搜索或过滤的四种方法详解
    目录Array.filter()Array.find()Array.includes()Array.indexOf()结语获取满足特定条件的数组中的所有项目要检查是否满足条件?检查数...
    99+
    2024-04-02
  • javascript数组中删除元素的方法
    这篇文章主要介绍javascript数组中删除元素的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript删除数组元素的方法:1、使用splice()函数,语法格式“arr.splice(开始位置,删...
    99+
    2023-06-14
  • 微前端之 js隔离 样式隔离 元素隔离问题详解
    目录WebComponent 介绍js隔离问题解决方法一用 Proxy 代理方法二 用快照样式隔离问题方法一 样式增加不同前缀方法二 ShadawDom元素隔离WebComponen...
    99+
    2024-04-02
  • PHP 函数的元素组成:详解
    php 函数的组成元素:函数名称、参数列表、函数体。函数名称用于调用函数,参数列表包含接收的参数,函数体放置要执行的代码。实战中可创建求和函数,返回两个数相加的结果。函数名称不能重名,参...
    99+
    2024-04-10
    函数 php
  • JavaScript利用html5新方法操作元素类名详解
    目录1、classList属性2、实务应用早先JavaScript处理起来特别不方便,需要先取到class属性,然后对字符串进行处理。 现在html5给所有元素增加了classLis...
    99+
    2024-04-02
  • 前端JavaScript算法怎么找出只出现一次的数字
    本篇内容介绍了“前端JavaScript算法怎么找出只出现一次的数字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目:只出现一次的数字给定...
    99+
    2023-07-02
  • 前端算法题解leetcode36-有效的数独示例
    目录题目解题思路-分别处理代码实现解题思路-一次扫描判断所有代码实现题目 题目地址 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验...
    99+
    2024-04-02
  • JavaScript删除数组元素的方法指南
    目录删除数组元素之splice()删除数组元素之filter()删除数组元素之pop()删除数组元素之shift()删除数组元素之splice()、slice()和conca ...
    99+
    2023-05-19
    JavaScript删除数组元素方法 JavaScript删除数组元素 JavaScript 数组 元素
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作