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

Smallest Range II

时间:2020-01-21 23:44:05      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:max   height   har   问题   csharp   ima   info   tran   div   

2020-01-21 21:43:52

问题描述:

技术图片

技术图片

问题求解:

这个题目还是有点难度的,感觉很巧妙也很难想到。

整体的思路如下:

1. 首先原问题等价于 +0 / + 2*K

2. 那么res = Max - Min

3. 不断更新Max,Min期望得到更小的res

    public int smallestRangeII(int[] A, int K) {
        int n = A.length;
        Arrays.sort(A);
        int max = A[0];
        int min = A[0];
        for (int num : A) {
            if (num > max) max = num;
            if (num < min) min = num;
        }
        int res = max - min;
        for (int i = 0; i < n - 1; i++) {
            max = Math.max(A[n - 1], A[i] + 2 * K);
            min = Math.min(A[0] + 2 * K, A[i + 1]);
            res = Math.min(res, max - min);
        }
        return res;
    }

  

Smallest Range II

标签:max   height   har   问题   csharp   ima   info   tran   div   

原文地址:https://www.cnblogs.com/hyserendipity/p/12227140.html

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