首页 > 编程语言 >力扣算法之数组中出现次数超过一半的数字

力扣算法之数组中出现次数超过一半的数字

时间:2022-09-25 10:12:37浏览次数:51  
标签:targetNum 数字 nums 力扣 算法 数组 var obj

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

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

示例:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2

限制:

1 <= 数组长度 <= 50000

解题:

/**
 * @param {number[]} nums
 * @return {number}
 */
var majorityElement = function(nums) {
  var targetLength = nums.length / 2;
  var numLength = nums.length;
  var targetNum;
  var obj = {};
  for (var i = 0; i < numLength; i++) {
    targetNum = nums[i];
    obj[targetNum] ? obj[targetNum]++ : (obj[targetNum] = 1);
    if (obj[targetNum] > targetLength) break;
  }
  return targetNum;
};

结果:

 

 

脚踏实地行,海阔天空飞~

 

标签:targetNum,数字,nums,力扣,算法,数组,var,obj
From: https://www.cnblogs.com/coder--wang/p/16727309.html

相关文章

  • 斐波那契查找算法
    斐波那契也称黄金分割法,通过黄金分割点找到mid值,即mid=low+F(k-1)-1 (F代表斐波那契数列)对F(k-1)-1的理解由斐波那契数列F[k]=F[k-1]+F[k-2]的性质,可以得到 (F[k]-1......
  • vue3和react虚拟DOM的diff算法区别
    vue3随着Vue3.0版本的发布,我们在使用或者对其源码进行阅读时会惊讶的发现,它又又又双叒叕变强了,尤大本人在直播中也提到新的Vue会比老的Vue有1.3到2倍的提升,它的更新机制会......
  • 1640. 能否连接形成数组
    1640.能否连接形成数组给你一个整数数组arr,数组中的每个整数互不相同。另有一个由整数数组构成的数组pieces,其中的整数也互不相同。请你以任意顺序连接piec......
  • LeetCode - 数组的改变和移动
    1.数组的改变和移动总结1.1数组的改变数组在内存中是一块连续的内存空间,我们可以直接通过下标进行访问,并进行修改。在Java中,对于List类型来说,我们可以通过set(idx,el......
  • 插值查找算法
    简介插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。将折半查找中的求mid索引的公式,low表示左边索引left,high表示右边索引right. key......
  • 二分查找算法
    简介只能对有序数组进行查找代码实现publicclassBinarySearch{ publicstaticvoidmain(String[]args){ //查找单个数据 intarr[]={1,8,10,8......
  • 博奕类算法
    京东笔试,总体难度比较低,但是最后一道我做不来这题如果有思路应该不难,我觉得应该是动态规划相关的题目题目长这样我又看到力扣有这种博弈类型的题目,我觉得这是我的盲区......
  • 数组的各种方法
    数组的各种方法:push、unshift都是给数组添加元素,都可以接受多个参数,都会返回添加后的目标数组的长度。前者从数组结尾添加,后者从数组开头处添加。pop、shift都是从数组处......
  • 力扣1095——山脉数组中查找目标值
    1095.山脉数组中查找目标值难度困难(这是一个 交互式问题 )给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的......
  • 力扣-226-翻转二叉树/剑指Offer-27-二叉树的镜像
    直达链接直观的想法:我可以遍历并重建,但也很明显效率低下,可能达到O(N2),但或许可能拿来当作练习,检查自己遍历/重建二叉树的基本功不过现在先想想有没有效率更高的解法,我觉......