讨论/题目交流/🏆 第 182 场力扣周赛/
🏆 第 182 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛

image.png

3 分 - 找出数组中的幸运数
4 分 - 统计作战单位数
5 分 - 设计地铁系统
8 分 - 找到所有好字符串

展开讨论

很郁闷,答案都对了,就是小数点不对,哪位大佬解释一下?double的返回值是五个小数点,但是答案只有一个,怎么解决啊。

class UndergroundSystem {
public:
    UndergroundSystem() {
        
    }
    map<string, vector<int>> mp;
    map<int, int> startt;
    map<int, int> endt;
    void checkIn(int id, string stationName, int t) {
        mp[stationName].push_back(id);
        startt[id] = t;
    }
    
    void checkOut(int id, string stationName, int t) {
        mp[stationName].push_back(id);
        endt[id] = t;
    }
    
    double getAverageTime(string startStation, string endStation) {
        vector<int> mem;
        for(int i = 0; i < mp[startStation].size(); i++){
            for(int j = 0; j < mp[endStation].size(); j++){
                if(mp[startStation][i] == mp[endStation][j]) mem.push_back(mp[startStation][i]);
            }
        }
        int tot = 0;
        for(int i = 0; i < mem.size(); i++){
            tot += endt[mem[i]] - startt[mem[i]];
        }
        int ans = tot/mem.size();
        return ans;
    }
};

T2,有点排列组合的感觉,代码还是不够简洁。

class Solution {
public:
    int numTeams(vector<int>& rating) {
        int n = rating.size();
        int kase = 0;
        for(int j = 1; j < n-1; j++){
            int lower = 0, upper = 0;
            for(int i = j-1; i >=0; i--){
                if(rating[i] < rating[j]) lower++;
            }
            for(int k = j+1; k < n; k++){
                if(rating[j] < rating[k]) upper++;
            }
            int s = lower * upper;
            kase += s;
        }
        for(int j = 1; j < n-1; j++){
            int lower = 0, upper = 0;
            for(int i = j-1; i >=0; i--){
                if(rating[i] > rating[j]) lower++;
            }
            for(int k = j+1; k < n; k++){
                if(rating[j] > rating[k]) upper++;
            }
            int s = lower * upper;
            kase += s;
        }
        return kase;
    }
};
2
展开全部 31 讨论