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

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

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

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

划重点

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

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

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

思路

我们先从小到大的排序

分两种情况

第一种

  • 全选和全不选

1.如果 0<nums[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;
    }
};


相关文章
|
6月前
leetcode-6133:分组的最大数量
leetcode-6133:分组的最大数量
52 0
|
6月前
|
Go
golang力扣leetcode 49.字母异位词分组
golang力扣leetcode 49.字母异位词分组
33 0
|
3月前
|
存储 算法
LeetCode第49题字母异位词分组
LeetCode第49题"字母异位词分组"的解题方法,通过将每个字符串的字符排序后作为键存储在HashMap中,有效地将所有字母异位词分组。
LeetCode第49题字母异位词分组
|
1月前
|
存储
Leetcode第49题(字母异位词分组)
LeetCode第49题要求将字符串数组中的字母异位词分组,可以通过将每个字符串排序后作为键存入哈希表,最后将哈希表中的值添加到结果列表中来实现。
15 1
|
5月前
|
存储 算法 安全
LeetCode 题目 49:字母异位词分组 5种算法实现与典型应用案例【python】
LeetCode 题目 49:字母异位词分组 5种算法实现与典型应用案例【python】
|
5月前
|
存储
力扣经典150题第四十二题:字母异位词分组
力扣经典150题第四十二题:字母异位词分组
32 0
|
6月前
|
Windows
力扣100097. 合法分组的最少组数(哈希+贪心)
力扣100097. 合法分组的最少组数(哈希+贪心)
|
6月前
leetcode热题100. 字母异位词分组
leetcode热题100. 字母异位词分组
46 0
|
6月前
leetcode-49:字母异位词分组
leetcode-49:字母异位词分组
44 0
|
算法 程序员
力扣刷题-字母异位词分组
力扣刷题-字母异位词分组