LeetCode題解(1491):去掉最低工資和最高工資後的工資平均值(Python)

題目:原題鏈接(簡單)

解法 時間複雜度 空間複雜度 執行用時
Ans 1 (Python) O(N)O(N) O(1)O(1) 36ms (83.26%)
Ans 2 (Python) O(N)O(N) O(1)O(1) 32ms (95.38%)
Ans 3 (Python)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一:

def average(self, salary: List[int]) -> float:
    return (sum(salary) - max(salary) - min(salary)) / (len(salary) - 2)

解法二:

def average(self, salary: List[int]) -> float:
    sum_ = 0
    max_ = 0
    min_ = float("inf")
    for s in salary:
        sum_ += s
        max_ = max(max_, s)
        min_ = min(min_, s)
    return (sum_ - max_ - min_) / (len(salary) - 2)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章