LeetCode 910 题解

https://leetcode.com/problems/smallest-range-ii/description/

题目大意:同908,只是现在只能+k 或者-k,问最小的差距是多少。

解题思路:先将A排序,考虑 两种变化 (up,down) 和 (down,up) 前者显然优于后者。所以对于A数组的最小值,最大值,肯定是min+K , max-K。 对于每一个 A[i] ,A[i+1] ,比较 min+K,A[i]+K, max-K, A[i+1]-K 之间的关系即可

class Solution {
public:
    int smallestRangeII(vector& A, int K) {
        int n = A.size();
        if(n==1) return 0;
        sort(A.begin(),A.end());
        int res = A[n-1]-A[0];
        for(int i=0;i

 

你可能感兴趣的:(leetcode,leetcode)