码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode-908. 最小差值 I

时间:2018-10-11 13:45:06      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:++   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

标签:++   turn   示例   过程   代码   输入   一个   class   range   

原文地址:https://www.cnblogs.com/99xiaobei/p/9771819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!