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 1266. 找不同 JavaScript算法
-
LintCode 41. 最大子数组 JavaScript算法
-
LintCode 767. 翻转数组 JavaScript算法
-
LintCode 1099. 不下降数组 JavaScript算法
-
LintCode 1347. 尾随零 JavaScript算法
-
LintCode 1314. 2的幂 JavaScript算法
-
LintCode 4. 丑数 II JavaScript算法
-
LintCode 34. N皇后问题 II JavaScript算法
-
LintCode 759. 时间角度 JavaScript算法
-
LintCode 517. 丑数 JavaScript算法