首页 > 其他分享 >第 356 场周赛 - 力扣(LeetCode)

第 356 场周赛 - 力扣(LeetCode)

时间:2023-08-01 10:55:42浏览次数:33  
标签:string nums int 力扣 356 str ans LeetCode size

第 356 场周赛 - 力扣(LeetCode)

2798. 满足目标工作时长的员工数目 - 力扣(LeetCode)

一次遍历

class Solution {
public:
    int numberOfEmployeesWhoMetTarget(vector<int>& hours, int target) {
        
        int ans = 0;
        for(auto i : hours)
            ans += (i >= target);
        return ans;
    }
};

2799. 统计完全子数组的数目 - 力扣(LeetCode)(滑动窗口)

先求出数组中不同元素的个数,然后去遍历,用一个哈希表记录遍历过的元素,如果找到一个区间\([l,r]\)满足条件,就让\(ans\)加上\(nums.size() - r\),因为对于这样的一个区间,如果\([l,r]\)是满足条件的,那么\(r+1,r+2 \dots n\)也一定是满足条件的,因为不同元素的个数已经满足,往后也不会再有新的元素,然后就是去每次更新窗口的前端,将那些前面有重复的去掉

class Solution {
public:
    int countCompleteSubarrays(vector<int>& nums) {

    int num = unordered_set<int>(nums.begin(), nums.end()).size();
    unordered_map<int,int> mp;
    int l = 0, ans = 0;

    for(int r = 0;r < nums.size(); r++){
        mp[nums[r]]++;

        while(mp.size() == num){
            ans += nums.size() - r;
            mp[nums[l]]--;
            if(mp[nums[l]] == 0)
                mp.erase(nums[l]);
            l++;
        }
    }

    return ans;
    }
};

2800. 包含三个字符串的最短字符串 - 力扣(LeetCode)

因为只有三个字符串,所以我们可以直接对三个字符串进行全排列枚举,也因为全排列枚举了所有情况,所以我们去合并的时候直接就看串\(a\)的后面能不能接\(b\)就行了

class Solution {
public:

    string merge(string a,string b){
        if(a.find(b) != -1) return a;
        if(b.find(a) != -1) return b;

        for(int i = min(a.size(),b.size());i > 0;i--)
            if(a.substr(a.size() - i) == b.substr(0,i))
                return a + b.substr(i);

        return a + b;
    }

    string minimumString(string a, string b, string c) {

        vector<string> str{a,b,c};
        sort(str.begin(),str.end());
        string ans = a + b + c;

        do{
            string Ke = merge(merge(str[0],str[1]),str[2]);
            if(Ke.size() < ans.size() || Ke.size() == ans.size() && Ke < ans)
                ans = Ke;
        }while(next_permutation(str.begin(), str.end()));

        return ans ;
    }
};

2801. 统计范围内的步进数字数目 - 力扣(LeetCode)(数位dp)

后面学了再来补题qwq

标签:string,nums,int,力扣,356,str,ans,LeetCode,size
From: https://www.cnblogs.com/Kescholar/p/17595887.html

相关文章

  • 代码随想录算法训练营第五天|力扣242.有效的字母异位词、力扣242.两个数组的交集、力
    哈希表哈希表理论基础哈希表,又称为散列表(HashTable),是根据关键码的值而直接进行访问的数据结构其中,数组就是一张哈希表;表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素哈希表解决的问题:一般哈希表都是用来快速判断一个元素是否出现在集合中哈希函数:把学生的......
  • 代码随想录算法训练营第三天| LeetCode 242.有效的字母异位词 349. 两个数组的交集
    242.有效的字母异位词    卡哥建议: 这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处。    题目链接/文章讲解/视频讲解: https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html   做题思路:......
  • 力扣-接雨水2
    1.问题描述给你一个mxn的矩阵,其中的值均为非负整数,代表二维高度图每个单元的高度,请计算图中形状最多能接多少体积的雨水。示例:给出如下3x6的高度图:[ [1,4,3,1,3,2], [3,2,1,3,2,4], [2,3,3,2,3,1]]返回4。如下图所示,这是下雨前的高度图[[1,4,3,1,3,2],[3......
  • leetcode-n-sum总结
    总结一下leetcode中遇见的2-sum,3-sum,4-sum问题,并扩展到n-sum。1.两数之和-力扣(LeetCode)梦开始的地方,不多说。classSolution{publicint[]twoSum(int[]nums,inttarget){Map<Integer,Integer>map=newHashMap<>();for(inti=0;i<......
  • 2800.包含三个字符串的最短字符串-356
    包含三个字符串的最短字符串给你三个字符串a,b和c,你的任务是找到长度最短的字符串,且这三个字符串都是它的子字符串。如果有多个这样的字符串,请你返回字典序最小的一个。请你返回满足题目要求的字符串。注意:两个长度相同的字符串a和b,如果在第一个不相同的字符......
  • 2799.统计完全子数组的数目-356
    统计完全子数组的数目给你一个由正整数组成的数组nums。如果数组中的某个子数组满足下述条件,则称之为完全子数组:子数组中不同元素的数目等于整个数组不同元素的数目。返回数组中完全子数组的数目。子数组是数组中的一个连续非空序列。示例1:输入:nums=[1,3,1,2......
  • leetcode集训-2023年7月
    今天我想和大家分享一下我参与LeetcodeSQL题集训一个月来的心得体会。在这段时间里,我真的深入感受到SQL语句和数据库API的魅力,也体验到了数据库世界的各种趣味与挑战。SQL语句的执行顺序主要包含以下几个步骤:FROM:指定要查询的表或视图。WHERE:对FROM子句中的表进行条件过滤,只选择满......
  • LeetCode/课程表IV
    你总共需要上numCourses门课,课程编号依次为0到numCourses-1。你会得到一个数组prerequisite,其中prerequisites[i]=[ai,bi]表示如果你想选bi课程,你必须先选ai课程。有的课会有直接的先修课程,比如如果想上课程1,你必须先上课程0,那么会以[0,1]数对的形式给......
  • iTOP-RK3568开发板Windows 安装 RKTool 驱动
    在烧写镜像之前首先需要安装RKTool驱动。RKTool驱动在网盘资料“iTOP-3568开发板\01_【iTOP-RK3568开发板】基础资料\02_iTOP-RK3568开发板烧写工具及驱动”路径下。驱动如下图所示:解压缩后,进入文件夹,如下图所示:点击“DriverInstall.exe”,如下图所示:如果出现提示,选择安装,如下......
  • 代码随想录第四天|力扣24.两两交换链表节点、力扣19.删除链表的倒数第N个结点、力扣面
    两两交换链表中的节点(力扣24.)dummyhead.next=head;cur=dummyhead;while(cur.next!=null&&cur.next.next!=null)temp=cur.next;temp1=cur.next.next.next;cur.next=cur.next.next;cur.next.next=temp;temp.next=temp1;cur=cur.next.next;returndummyhead.n......