LeetCode-908. 最小差值 I

來源:互聯網
上載者:User

標籤:++   turn   樣本   過程   代碼   輸入   一個   class   range   

給定一個整數數組 A,對於每個整數 A[i],我們可以選擇任意 x 滿足 -K <= x <= K,並將 x 加到 A[i] 中。

在此過程之後,我們得到一些數組 B

返回 B 的最大值和 B 的最小值之間可能存在的最小差值。

 

樣本 1:

輸入:A = [1], K = 0輸出:0解釋:B = [1]

樣本 2:

輸入:A = [0,10], K = 2輸出:6解釋:B = [2,8]

樣本 3:

輸入:A = [1,3,6], K = 3輸出:0解釋:B = [3,3,3] 或 B = [4,4,4]

 

提示:

  1. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 10000

0 <= K <= 10000

 1 class Solution { 2 public: 3     int smallestRangeI(vector<int>& A, int K) { 4         int n = A.size(); 5         int ans = 0; 6         int sma = A[0], big = A[0]; 7         for(int i = 1;i < n;i ++){ 8             if(sma > A[i]){ 9                 sma = A[i];10             }11             if(big < A[i]){12                 big = A[i];13             }14         }15         ans = big - sma;16         if(ans < 2*K){17             return 0;18         }19         else{20             return ans - 2*K;21         }22     }23 };

解題思路:實際上是求數組A最大值與最小值之差與2K之間的最小差值。

代碼用時:16ms。

LeetCode-908. 最小差值 I

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.