LeetCode偶爾一題 —— 908. 最小差值 I

原題地址: https://leetcode-cn.com/probl...

題目描述

題目分析

原題描述稍微有點繞,用更加通俗易懂的語言描述就是:javascript

給出一個整數 k,找到一個整數 x 且整數 x 知足 -k <= x <= k,與 A[i] 相加以後獲得數組 B。咱們獲得的就是數組 B 中最大值與最小值的 最小差值

要獲得最大值與最小值的最小差值,那麼就應該讓最大值儘量小,最小值儘量大。前端

a最大值b最小值,那麼應該知足:
a - k 儘量小,b + k 儘量大
因此:最小差值 s = (a - k) - (b + k) = a - b - 2k >= 0java

示例代碼

/**
 * @param {number[]} A
 * @param {number} K
 * @return {number}
 */
var smallestRangeI = function(A, K) {
    const min = Math.min(...A)
    const max = Math.max(...A)
    return Math.max(0, max - min - 2 * K)
};
  • 時間複雜度:O(n)
  • 空間複雜度:O(1)

寫在最後

一直在 LeetCode 上刷題,以前還加入了組織,有興趣加入一塊兒學習的同窗能夠在下方留言或者關注個人微信公衆號「tony老師的前端補習班」並在後臺留言,能夠進羣跟大佬們一塊兒學習。
git

相關文章
相關標籤/搜索