HackerRank‐GreedyAlgorithms - a920604a/leetcode GitHub Wiki


title: GreedyAlgorithms categories: - interview-preparation-kit - HackerRank comments: false

Max Min

int maxMin(int k, vector<int> arr) {
    sort(arr.begin(), arr.end());
    int ret = INT_MAX;
    for(int i=k-1;i<arr.size() ; ++i){
        ret =  min(ret, arr[i] - arr[i-k+1]);
    }
    return ret;
}

Luck Balance

int luckBalance(int k, vector<vector<int>> contests) {
    int ret = 0;
    sort(contests.begin(), contests.end(), [](vector<int> &a, vector<int>&b){
        return a[0]>b[0];
    });
    for(vector<int> contest:contests){
        int l = contest[0], t = contest[1];
        if(t==0) ret+=l;
        else{
            if(k>0){
                ret+=l;
                k--;
            }
            else ret-=l;
        }
    }
    return ret;
}

Minimum Absolute Difference in an Array

int minimumAbsoluteDifference(vector<int> arr) {
    sort(arr.begin(), arr.end());
    int ret = INT_MAX;
    for(int i=1;i<arr.size() ; ++i){
        ret = min(ret, abs(arr[i] - arr[i-1]));
    }
    return ret;
}

Greedy Florist

int getMinimumCost(int k, vector<int> c) {
    sort(c.begin(), c.end(), [](int &a, int &b){
       return a>b;
    });
    int n = c.size();
    int times = 0, ret= 0;
    for(int i=0;i<n;++i){
        if(i%k==0) times++;
        ret += times * c[i];
        
    }
    return ret;
}

Reverse Shuffle Merge

⚠️ **GitHub.com Fallback** ⚠️