欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LintCode 80.中位数 JavaScript算法

程序员文章站 2022-07-15 16:30:23
...

描述

给定一个未排序的整数数组,找到其中位数。

中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。

说明

数组大小不超过10000

样例

- 样例 1:

输入:[4, 5, 1, 2, 3]
输出:3
解释:
经过排序,得到数组[1,2,3,4,5],中间数字为3

- 样例 2:

输入:[7, 9, 4, 5]
输出:5
解释:
经过排序,得到数组[4,5,7,9],第二个(4/2)数字为5

首先用sort函数对数组快速排序,然后除余判断数组length是奇数还是偶数,奇数取中间值,偶数取中间值前一位数

const median = function (nums) {
    nums = nums.sort((a,b) => { return b-a });
    len = nums.length;
    lenharf = len/2;
    if(len%2 == 1) return nums[parseInt(lenharf)];
    else return nums[lenharf-1];
}

运行结果

LintCode 80.中位数 JavaScript算法