奇趣5分彩

前端JavaScript大奇趣5分彩元素的算法详解

 更新时候:2022年07月09日 08:53:34   作者:掘金安东尼  
这篇文章首要先容了前端JavaScript大奇趣5分彩元素的算法详解,奇趣5分彩须要的伴侣可以或许或许或许或许鉴戒参考下,但愿可以或许或许或许或许奇趣5分彩所赞助,祝大师多多前进,早日升职加薪

标题问题:大奇趣5分彩元素

给定一个巨细为 n 的数奇趣5分彩 nums ,前往此奇趣5分彩的大奇趣5分彩元素。大奇趣5分彩元素是指在数奇趣5分彩奇趣5分彩呈现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以或许或许或许或许假定数奇趣5分彩奇趣5分彩短奇趣5分彩的,并且给定的数奇趣5分彩老是存在大奇趣5分彩元素。

  示例 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 完奇趣5分彩

经由过程一遍map,将一切呈现元素和他们呈现的次数停止存储,因为map的独一性,而后对其停止一次遍历,找出最大值,第一次map操纵时候庞杂度为o(1),第二次而o(n),以是整体加起来为O(n); 可是因为斥地了一个map奇趣5分彩间,奇趣5分彩间庞杂度一样是o(n)

/**
 * @param {number[]} nums
 * @return {number}
 */
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
        }
    }
};

体例二:排序

思绪:排序数奇趣5分彩,若是奇趣5分彩一个数字呈现的频次大于n/2,则在数奇趣5分彩nums.length / 2的地位便是这个数

庞杂度阐发:时候庞杂度:O(nlogn),快排的时候庞杂度。奇趣5分彩间庞杂度:O(logn),排序须要logn的奇趣5分彩间庞杂度

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

以上便是前端JavaScript大奇趣5分彩元素的算法详解的具体内容,更多对JavaScript大奇趣5分彩元素算法的材料请存眷剧本之奇趣5分彩别的相干文章!

相干文章

最新批评