前端JavaScript多数元素的算法实例分析(javascript,开发技术)

时间:2024-05-09 16:36:41 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    %E5%89%8D%E7%AB%AFJavaScript%E5%A4%9A%E6%95%B0%E5%85%83%E7%B4%A0%E7%9A%84%E7%AE%97%E6%B3%95%E5%AE%9E%E4%BE%8B%E5%88%86%E6%9E%90

给定一个大小为 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)

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

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

本文:前端JavaScript多数元素的算法实例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:基于MFC如何实现类的序列化下一篇:

20 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18