• LeetCode题解-让所有学生保持开心的分组方法数


    简单说两句

    作者:后端小知识

    CSDN个人主页后端小知识

    🔎GZH后端小知识

    🎉欢迎关注🔎点赞👍收藏⭐️留言📝

    image-20230716235002827

    亲爱的各位友友们,今天来给大家讲解一道力扣中等题,废话不多说,接下面我就浅浅分析下这个题吧,我一定能给你讲明白的😀😀😀

    我们先来康康题目的意思啦,为了方便观看,我直接到力扣那里截了个屏过来✅

    划重点

    这道题免费哟,直接上链接🥰🥰🥰让所有学生保持开心的分组方法数

    为了方便观看,我直接截图过来,贴心吧😁😁😁

    image-20230917163528096

    这个题只要大家想到了排序就能很快做出来咯

    思路

    我们先从小到大的排序

    分两种情况

    第一种

    • 全选和全不选

    ​ 1.如果 0

    ​ 2.假设nums长度为len,如果 len > nums[len-1],那么表示可以全选

    • 选部分

      假设循环从下标0开始,用 变量 i 表示,循环到下标i时,被选中的人数 为 i+1个人;

    ​ 若选第i+1个人且能保持开心:需要满足两个条件 i+1 > nums[i]i+1 < nums[i+1],为什么会有i+1 < nums[i+1]这个条件呢,是因为选了这个第i+1个人时,后面的人一定是没有选的,没有选又要保持开心,就得满足那个条件,因为排了序的,能够让i+1后面那个没有选又能保持开心的话,那么后面所有的人都能保持开心

    好啦,我们来康康AC的代码吧

    class Solution {
    public:
        int countWays(vector<int>& nums) {
            sort(nums.begin(),nums.end());
            int len = nums.size();
            int ans = (0<nums[0])+(len>nums[len-1]);
            for(int i=0;i<len-1;i++) if(i+1>nums[i]&&i+1<nums[i+1]) ans++;
            return ans;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    🎁🎁好啦,今天的分享就到这啦,蟹蟹友友们的观看,非常希望能够帮助友友们提高思维能力😘😘😘

    【都看到这了,点点赞点点关注呗,爱你们】😚😚

    抽象工厂  引导关注

    结语

    谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
    写作不易,望各位老板点点赞,加个关注!😘😘😘

    💬

    作者:后端小知识

    CSDN个人主页后端小知识

    🔎GZH后端小知识

    🎉欢迎关注🔎点赞👍收藏⭐️留言📝

  • 相关阅读:
    深度学习分析NASA电池数据(1 数据读取)
    基础复习——Button——按钮——触发事件——监听器(单独&公共)——点击事件与长按事件——禁用&恢复按钮...
    C#基础知识
    测试报告。
    Java代码基础算法练习-判断学生成绩等级-2024.06.28
    react中的this指向问题
    用 Go 访问 MySql 数据库
    拓扑排序(C++)
    二十四节气-立冬文案、海报。万物收藏,冬之伊始。
    架构扩展性
  • 原文地址:https://blog.csdn.net/m0_46833224/article/details/132948130