亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS題解leetcode去掉最低工資和最高工資后的工資平均值

 更新時(shí)間:2022年12月22日 15:14:03   作者:外語狂魔陳清泉  
這篇文章主要為大家介紹了JS題解leetcode去掉最低工資和最高工資后的工資平均值,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目 

leetcode.cn/

  • 給你一個(gè)整數(shù)數(shù)組 salary ,數(shù)組里每個(gè)數(shù)都是 唯一 的,其中 salary[i] 是第 i 個(gè)員工的工資。
  • 請(qǐng)你返回去掉最低工資和最高工資以后,剩下員工工資的平均值。

示例

示例 1:

輸入: salary = [4000,3000,1000,2000]

輸出: 2500.00000

解釋: 最低工資和最高工資分別是 1000 和 4000 。去掉最低工資和最高工資以后的平均工資是 (2000+3000)/2= 2500

示例 2:

輸入: salary = [1000,2000,3000]

輸出: 2000.00000

解釋: 最低工資和最高工資分別是 1000 和 3000 。去掉最低工資和最高工資以后的平均工資是 (2000)/1= 2000

示例 3:

輸入: salary = [6000,5000,4000,3000,2000,1000]

輸出: 3500.00000

示例 4:

輸入: salary = [8000,9000,2000,3000,6000,1000]

輸出: 4750.00000

提示

  • 3 <= salary.length <= 100
  • 10^3 <= salary[i] <= 10^6
  • salary[i] 是唯一的。
  • 與真實(shí)值誤差在 10^-5 以內(nèi)的結(jié)果都將視為正確答案。

代碼

function average(salary: number[]): number {
    let sortSalary = salary.sort((a, b) => { return a - b; });
    let sum = 0;
    for(let i = 1; i < sortSalary.length - 1; i++){
        sum += sortSalary[i];
    }
    return sum / (sortSalary.length - 2);
};
  • 首先將原數(shù)組排序,這樣排序后的新數(shù)組會(huì)將最大值和最小值放在數(shù)組的第一位和最后一位
  • 遍歷新數(shù)組,因?yàn)橐懦畲笾岛妥钚≈?,所以范圍從?shù)組的第二位到倒數(shù)第二位,將每一項(xiàng)的值進(jìn)行累加
  • 將累加和除以總共累計(jì)的項(xiàng)數(shù)返回(總項(xiàng)數(shù)是數(shù)組的長(zhǎng)度,排除首尾兩項(xiàng),累加項(xiàng)數(shù)為總長(zhǎng)度減去2
  • 采用先排序后遍歷累加的方法,時(shí)間復(fù)雜度較高,因?yàn)榕判蛞蚕臅r(shí)間
function average(salary: number[]): number {
    let max = Math.max(...salary);
    let min = Math.min(...salary);
    salary.splice(salary.indexOf(max), 1);
    salary.splice(salary.indexOf(min), 1);
    let sum = salary.reduce((next, pre) => {
        return next + pre
    }, 0)
    return sum / salary.length
};

優(yōu)化版:

  • 先利用Math.maxMath.min將數(shù)組的最大值和最小值找到
  • 然后利用數(shù)組方法splice將最大值和最小值從原數(shù)組中刪除(splice方法改變?cè)瓟?shù)組的長(zhǎng)度
  • 最后使用數(shù)組的reduce方法將數(shù)組求和
  • 最后將刪除最大值和最小值的數(shù)組和除以數(shù)組長(zhǎng)度,得到平均值返回
  • 時(shí)間消耗和上面差不太多,內(nèi)存消耗比上面少一些

以上就是JS題解leetcode去掉最低工資和最高工資后的工資平均值的詳細(xì)內(nèi)容,更多關(guān)于JS題解leetcode工資平均值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論