leetcode(1200) 最小绝对差

leetcode(1200) 最小绝对差_第1张图片
方法一:
暴力法:
两次遍历:

class Solution {
public:
    vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
        vector<vector<int>> ans;
        sort(arr.begin(),arr.end());
        int k=INT_MAX;
        for(int i=0;i<arr.size()-1;i++){
            k=min(k,arr[i+1]-arr[i]);
        }
        for(int i=0;i<arr.size()-1;i++){
            vector<int> v;
            if(arr[i+1]==arr[i]+k){
                v.push_back(arr[i]);
                v.push_back(arr[i+1]);
                ans.push_back(v);
            }
        }
        return ans;
    }
};
class Solution {
public:
    vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
        vector<vector<int>> ans;
        sort(arr.begin(),arr.end());
        int k=INT_MAX;
        for(int i=0;i<arr.size()-1;i++){
            k=min(k,arr[i+1]-arr[i]);
        }
        for(int i=0;i<arr.size()-1;i++){
            if(arr[i+1]==arr[i]+k){
                ans.push_back({arr[i],arr[i+1]});
            }
        }
        return ans;
    }
};

你可能感兴趣的:(LeetCode)