头像

西瓜好甜




离线:7小时前



class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        int n = nums.size();
        vector<int> res;
        if(n == 0) return res;
        sort(nums.begin(),nums.end());
        set<int> s;
        s.insert(nums.begin(),nums.end());
        for(int i = 1;i <= n;i ++) 
            if(s.count(i) == 0) res.push_back(i);
        return res;
    }
};


活动打卡代码 LeetCode 455. 分发饼干

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        int n = g.size(),m = s.size();
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());

        int res = 0;

        int idx = 0;
        for(int i = 0;i < n;i ++){
            for(int j = idx;j < m;j ++){
                if(s[j] >= g[i]) 
                {
                    res += 1;
                    s[j] = -1; 
                    break;
                }
            } 
        }
        return res;
    }
};



5122. 删除某些元素后的数组均值

给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。

与 标准答案 误差在 10-5 的结果都被视为正确结果。

示例 1:

输入:arr = [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3]
输出:2.00000
解释:删除数组中最大和最小的元素后,所有元素都等于 2,所以平均值为 2 。
示例 2:

输入:arr = [6,2,7,5,1,2,0,3,10,2,5,0,5,5,0,8,7,6,8,0]
输出:4.00000
示例 3:

输入:arr = [6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4]
输出:4.77778
示例 4:

输入:arr = [9,7,8,7,7,8,4,4,6,8,8,7,6,8,8,9,2,6,0,0,1,10,8,6,3,3,5,1,10,9,0,7,10,0,10,4,1,10,6,9,3,6,0,0,2,7,0,6,7,2,9,7,7,3,0,1,6,1,10,3]
输出:5.27778
示例 5:

输入:arr = [4,8,4,10,0,7,1,3,7,8,8,3,4,1,6,2,1,1,8,0,9,8,0,3,9,10,3,10,1,10,7,3,2,1,4,9,10,7,6,4,0,8,5,1,2,1,6,2,5,0,7,10,9,10,3,7,10,5,8,5,7,6,7,6,10,9,5,10,5,5,7,2,10,7,7,8,2,0,1,1]
输出:5.29167

提示:

20 <= arr.length <= 1000
arr.length 是 20 的 倍数
0 <= arr[i] <= 105

class Solution {
public:
    double trimMean(vector<int>& arr) {
        int n = arr.size();
        int idx = 2;
        if(n >= 20) 
        {
            int x;
            x = n;
            idx = 2 * (n / 20);
        } 
        sort(arr.begin(),arr.end());
        int m = n - idx;
        double sum = 0;
        for(double i = idx / 2;i < n - idx / 2;i ++)
            sum += arr[i];
        double res = 0;
        res = sum / m;
        return res;
    }
};


活动打卡代码 LeetCode 118. 杨辉三角

西瓜好甜
1个月前
class Solution {
public:
    vector<vector<int>> generate(int n) {
        vector<vector<int>> res;
        for(int i = 0;i < n;i ++){
            vector<int> line(i + 1);
            line[0] = line[i] = 1;
            for(int j = 1;j < i;j ++){
                line[j] = res[i - 1][j - 1] + res[i - 1][j];
            }
            res.push_back(line);
        }
        return res;
    }
};


活动打卡代码 AcWing 1019. 庆功会

西瓜好甜
1个月前
#include<bits/stdc++.h>

using namespace std;

const int N = 6010;
int f[N];
int main(){
    int n,m;
    cin >> n >> m;

    for(int i = 0;i < n;i ++){
        int v,w,s;
        cin >> v >> w >> s;
        for(int j = m;j >= 0;j --){
            for(int k = 0;k <= s && k * v <= j;k ++)
                f[j] = max(f[j],f[j - k * v] + w * k);
        }
    }

    cout << f[m] << endl;

    return 0;

}


活动打卡代码 AcWing 2066. 解码

西瓜好甜
1个月前
#include<bits/stdc++.h>

using namespace std;

int main(){
    string a;
    cin >> a;

    for(int i = 0;i < a.size();i ++)
    {
        if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z'))
            cout << a[i] << "";
        else{
            int cnt = a[i] - '0';
            for(int j = 0;j < cnt - 1;j ++)
                cout << a[i - 1] << "";
        }
    }

    return 0;

}


活动打卡代码 AcWing 2065. 整除序列

西瓜好甜
1个月前
#include<bits/stdc++.h>

using namespace std;

typedef long long LL;
int main(){
    LL n;
    cin >> n;

    while(n)
    {
        cout << n << " ";
        n >>= 1;
    }

    return 0;

}



西瓜好甜
1个月前
class Solution {
public:
    string removeDuplicateLetters(string s) {
        int n = s.size();

        unordered_map<char,bool> exist;
        unordered_map<char,int> last;

        for(int i = 0;i < n;i ++) last[s[i]] = i;

        string stk;
        for(int i = 0;i < n;i ++){
            if(exist[s[i]]) continue;
            while(stk.size() && stk.back() > s[i] && last[stk.back()] > i){
                exist[stk.back()] = false;
                stk.pop_back();
            }
            stk += s[i];
            exist[s[i]] = true;
        }
        return stk;
    }
};


活动打卡代码 AcWing 125. 耍杂技的牛

西瓜好甜
1个月前
#include<bits/stdc++.h>

using namespace std;

const int N = 5e4 + 10;  

int n;

pair<int,int> a[N];

int main(){

    cin >> n;

    for(int i = 0;i < n;i ++) {
        int w,s;
        cin >> w >> s;
        a[i] = {w + s,s};
    }

    sort(a, a + n);

    int res = -2e9,sum = 0;
    for(int i = 0;i < n;i ++){
        int s = a[i].second,w = a[i].first - s;
        res = max(res,sum - s);
        sum += w;
    }

    cout << res << endl;
    return 0;
}



活动打卡代码 AcWing 104. 货仓选址

西瓜好甜
1个月前
#include<bits/stdc++.h>

using namespace std;

const int N = 1e5 + 10;

int n;
int a[N];

int main(){
    cin >> n;
    for(int i = 0;i < n;i ++) cin >> a[i];

    sort(a,a + n);

    int res = 0;
    for(int i = 0;i < n;i ++) res += abs(a[i] - a[n / 2]);

    cout << res << endl;

    return 0;

}