JavaScript多数元素是指什么,如何实现
Admin 2022-08-11 群英技术资讯 514 次浏览
给定一个大小为 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操作时间复杂度为o(1),第二次而o(n),所以总体加起来为O(n); 但是由于开辟了一个map空间,空间复杂度同样是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 } } };
思路:排序数组,如果有一个数字出现的频率大于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)]; };
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
现在很多账户信息注册都要求用户名唯一,也就是说用户名已经存在使用的,那么就不可再注册。因此我们在做用户注册页面时,就需要验证用户名是否可用。实现效果为,如果用户名已经存在,那么提示更换一个用户名,如果不存在那么提示用户名可用。
在JavaScript中也有this关键字,器作用是函数调用上下文,而this的行为是比较复杂,在JavaScript面试上常会遇到,也是很多朋友很难理解的一个知识点,这篇文章就给大家分享一些关于JS中this关键词的面试题,对大家学习和理解this有一定的参考价值。
这篇文章主要给大家分享react中不可变值,对大家学习什么是不可变值和理解为何要用不可变值有一定的帮助,感兴趣的朋友可以参考一下,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。
在前端开发中,级联选择框是经常用到的,这样不仅可以增加用户输入的友好性,还能减少前后端交互的数据量。本文就介绍一下使用Vue实现级联下拉框,感兴趣的可以了解一下
这篇文章主要介绍了详解CocosCreator消息分发机制,详细介绍了各模块的设计,同学们一定要自己看下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008