LeetCode-908. 最小差值 I

Posted 99xiaobei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-908. 最小差值 I相关的知识,希望对你有一定的参考价值。

给定一个整数数组 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的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-908. 最小差值 I

Leetcode-908 Smallest Range I(最小差值 I)

LeetCode 908. 最小差值 I / 1305. 两棵二叉搜索树中的所有元素 / 591. 标签验证器

leetcode908. Smallest Range I

[leetcode-908-Smallest Range I]

LeetCode 908 Smallest Range I 解题报告