JavaScript--《剑指offer》-题二十七
来源:互联网 发布:mac双系统移除win8后 编辑:程序博客网 时间:2024/05/29 11:05
题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
我的代码:
function MoreThanHalfNum_Solution(numbers){ var sorarr=numbers.sort(); var halfarr=[]; var num=0; var half= Math.ceil(numbers.length/2); for(var i=0;i<half;i++){ halfarr.push(sorarr[i]);}function halfNum(array){ if(array[0]===array[half-1]){ return array[0];} array=array.slice(1); array.push(sorarr[half+num]); num++; if(num===numbers.length-half){ return 0; } return halfNum(array);} return halfNum(halfarr);}//14ms 5296k
分析:先把原始数组排序。然后把原始的数组划分出大于一半的数组,既这个数组的长度为原数组的一半,然后比较这个数组的第一项和最后一项是否相等,要是相等则这个数组里的数已经满足题目要求,要是不满足,则这个数组的数往后面移一项,一直到最后,还是不满足就返回0,表示这个数组里面没有满足要求的数字。
阅读全文
0 0
- JavaScript--《剑指offer》-题二十七
- JavaScript--《剑指offer》-题二
- javascript 数组 二十七
- 剑指offer第二十七题【字符串的排列】c++实现
- 剑指offer题二
- 剑指offer系列之二十七:数组中出现次数超过一半的数
- 剑指offer(二十七)之数字在排序数组中出现的次数
- JavaScript学习笔记(二十七) 常量
- JavaScript学习笔记二十七:Promise
- javaScript笔记(二十七) XPath
- 剑指offer经典编程(十七)
- 剑指offer之编程(十七)
- JavaScript--《剑指offer》-题一
- JavaScript--《剑指offer》-题四
- 轻松学习JavaScript十七:JavaScript的BOM学习(二)
- javascript 剑指offer
- 剑指offer JavaScript实现
- 剑指offer--JavaScript版
- 1用switch语句从控制台输入100以内的分数判断优秀,良好,及格不及格属于哪一个区间
- JZOJ 5440. 【NOIP2017提高A组冲刺11.1】背包
- [笔记]eclipse保存包含有中文字符的源代码文件出错[了解字符集]
- bzoj3192 [JLOI2013]删除物品 树状数组
- 单点登录原理与简单实现
- JavaScript--《剑指offer》-题二十七
- Unity3d入门基础之UGUI-基本控件的学习-搭建界面的常规步骤
- 689. Maximum Sum of 3 Non-Overlapping Subarrays 【Hard】 动态规划
- JavaWeb之文件上传、下载
- 习题6.4作业提交
- JavaWeb-会话
- JQuery
- 数据预处理之归一化
- vim 项目管理工具(project)