前端算法- 多数元素

简介: 前端算法- 多数元素

题目

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

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

思路一

由于多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素,所以就注定这个数字只会有一个,所以我们先使用sort方法将数组排序好,然后使用Math.foolr获取到数组的中间位置并且赋值给n变量,最后将nums数组中间位置的值返回出去即可

/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
    nums.sort(function(a,b){return a-b})
    let n=Math.floor(nums.length/2)
    return nums[n]
};

思路二

我们先定义一个temp对象他是用于记录统计次数的,在定义一个MaxKey变量,他是用于记录最大统计值,在定义一个MarKeyIndex变量,他是指向最大值对应的数,然后我们使用循环对nuls数组进行遍历,在循环中进行判断如果当前值是不存在于temp对象中则作为属性值添加进去并且值为1,如果当前值存在于temp对象中则将对应的属性值进行自增1,我们一开始统计最大值默认为0,然后每一次循环我们都会对比对象里面记录的次数有没有大于最大值,如果有就将其存放到MaxKey变量中,同时也更新MarKeyIndex变量值,记录下最大值对应的属性值,以此往复,最后将MarKeyIndex变量返回出去即可

/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
    const temp = {};
    var MaxKey = 0;
    var MarKeyIndex;
    for (let i = 0; i < nums.length; i++) {
        if (temp[nums[i]]) {
            temp[nums[i]] ++  
        } else {
            temp[nums[i]] = 1
        }
        if (temp[nums[i]] > MaxKey) {
            MaxKey = temp[nums[i]]
            MarKeyIndex = nums[i]
        }
    }
    return MarKeyIndex
};


相关文章
|
11月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
216 1
|
12月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
192 3
|
10月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
674 5
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
131 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
前端开发
前端基础(十四)_隐藏元素的方法
本文介绍了几种在前端开发中隐藏元素的方法,包括使用`display:none`、`visibility:hidden`、`opacity:0`等CSS属性,并提供了相应的示例代码。此外,还提到了其他隐藏元素的技巧,如通过设置元素位置、使用`overflow`属性和`filter`属性以及`rgba`颜色值来实现元素的隐藏。
163 2
前端基础(十四)_隐藏元素的方法
|
12月前
|
存储 算法 Java
Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性
Java Set因其“无重复”特性在集合框架中独树一帜。本文解析了Set接口及其主要实现类(如HashSet、TreeSet)如何通过特定数据结构和算法确保元素唯一性,并提供了最佳实践建议,包括选择合适的Set实现类和正确实现自定义对象的hashCode()与equals()方法。
257 4
|
前端开发 JavaScript
前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)
本文介绍了如何在前端通过不同的方法获取DOM元素,包括getElementById、getElementsByTagName、getElementsByClassName、querySelector和querySelectorAll。
720 3
|
算法 前端开发
一文了解贪心算法和回溯算法在前端中的应用
该文章深入讲解了贪心算法与回溯算法的原理及其在前端开发中的具体应用,并通过分析LeetCode题目来展示这两种算法的解题思路与实现方法。
|
算法 前端开发 机器人
一文了解分而治之和动态规则算法在前端中的应用
该文章详细介绍了分而治之策略和动态规划算法在前端开发中的应用,并通过具体的例子和LeetCode题目解析来说明这两种算法的特点及使用场景。
一文了解分而治之和动态规则算法在前端中的应用
|
前端开发 JavaScript
前端ES5 | js —添加元素方法
前端ES5 | js —添加元素方法

热门文章

最新文章