leetcode第20场双周赛

5323. 根据数字二进制下 1 的数目排序

solution:暴力

std:

class Solution {
public:
    vector<int> sortByBits(vector<int>& arr) {
        vector<int> v[30];
        for(int i=0;i<arr.size();i++){
            int k = 0,x = arr[i];
            while(x){
                int y = x%2;
                k += y;
                x /= 2;
            }
            v[k].push_back(arr[i]);
        }
        vector<int> ans;
        for(int i=0;i<=29;i++){
            if(v[i].size() > 0){
                sort(v[i].begin(),v[i].end());
                for(int j=0;j<v[i].size();j++){
                    ans.push_back(v[i][j]);
                }
            }
        }
        return ans;
    }
};

5325. 包含所有三种字符的子字符串数目

solution:双指针法,维护一个滑动窗口

std:

class Solution {
public:
    int numberOfSubstrings(string s) {
        int j = 0,ans = 0,n = s.length();
        map<char ,int> mp;
        for(int i=0;i<s.length();i++){
            mp[s[i]]++;
            while(mp['a'] && mp['b'] && mp['c']){
                ans += (n - i);
                mp[s[j]]--;
                j++;
            }
        }
        return ans ;
    }
};

5326. 有效的快递序列数目

solution:排列组合,比较简单

std:

class Solution {
public:
    int countOrders(int n) {
        long long mod  =1e9 + 7;
        long long k = 1,ans = 1;
        for(long long i=2;i<=n;i++){
            ans = ans*(i*2 - 1 + (i*2 - 1)*(i*2 - 2)/2);
            ans %= mod;
        }
        return (int)ans ;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-15 17:46
暑期就挂了,秋招还有机会吗
大聪明777:研发提前批,14号刚开的,官网上面的配图上有写。提前批没过的话,秋招还可以投,不过前面的笔试/面试记录会被保留,供秋招参考
26届校招投递进展
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务