2860. 让所有学生保持开心的分组方法数

简介: 【9/3】

给你一个下标从 0 开始、长度为 n 的整数数组 nums ,其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生:

如果能够满足下述两个条件之一,则认为第 i 位学生将会保持开心:

这位学生被选中,并且被选中的学生人数 严格大于 nums[i] 。
这位学生没有被选中,并且被选中的学生人数 严格小于 nums[i] 。
返回能够满足让所有学生保持开心的分组方法的数目。

示例 1:

输入:nums = [1,1]
输出:2
解释:
有两种可行的方法:
班主任没有选中学生。
班主任选中所有学生形成一组。
如果班主任仅选中一个学生来完成分组,那么两个学生都无法保持开心。因此,仅存在两种可行的方法。
示例 2:

输入:nums = [6,0,3,3,6,7,2,7]
输出:3
解释:
存在三种可行的方法:
班主任选中下标为 1 的学生形成一组。
班主任选中下标为 1、2、3、6 的学生形成一组。
班主任选中所有学生形成一组。

提示:

1 <= nums.length <= 105
0 <= nums[i] < nums.length

题解:
只需要排序之后,在每个分界点判断,前后是否符合条件。
判断这个i>nums[i-1]&&nums[i]>i。

class Solution {
public:
    int countWays(vector<int>& nums) {
        int n = nums.size();
        sort(nums.begin(),nums.end());
        int ans=0;
        for (int i=0;i<n;i++){
            if(i==n-1){
                if(nums[i]<=i){
                    ans++;                   
                }                
            }
            else if(i==0){
                if(nums[i]>0){
                    ans++;
                }
            }
            else if(i>nums[i-1]&&nums[i]>i){
                ans++;
                cout<<i<<" "<<nums[i-1]<<" "<<nums[i]<<endl;
            }
        }
        return ans;
    }
};
目录
相关文章
|
存储 供应链 算法
《数学模型(第五版)》学习笔记(2)第3章 简单的优化模型 第4章 数学规划模型
《数学模型(第五版)》学习笔记(2)第3章 简单的优化模型 第4章 数学规划模型
339 1
|
安全 前端开发 BI
基于Debian10.10的开源蜜罐T-Pot 20.06.2安装
基于Debian10.10的开源蜜罐T-Pot 20.06.2安装
560 0
基于Debian10.10的开源蜜罐T-Pot 20.06.2安装
|
存储 Python
海明距离(Hamming Distance)
海明距离(Hamming Distance)是用来衡量两个二进制数之间差异程度的指标,它表示两个二进制数之间最多有多少个比特的差异。海明距离可以用于衡量数据传输或存储中的错误率,以及检测噪声干扰。 海明距离的计算方法是:对于两个 n 位二进制数,将它们进行逐位比较,如果对应位上的数字不同,则计算距离时增加 1。然后将所有位上的距离加在一起,得到海明距离。
2484 1
|
7月前
|
Ubuntu Linux 程序员
无需编码5分钟免费部署云上调用满血版DeepSeek
大家好,我是V哥。本文介绍如何部署DeepSeek满血版,包括本地和云上两种方式。本地部署需准备Ubuntu/CentOS环境、硬件要求及Docker等工具,适合开发者;云上部署则推荐使用阿里云方案,最快5分钟、0元即可完成,提供100万免费token,无需编码,操作简便。选择适合自己的方式,体验高性能的DeepSeek模型吧!关注V哥,做个高效程序员。
780 8
无需编码5分钟免费部署云上调用满血版DeepSeek
|
10月前
|
运维 Kubernetes 持续交付
深入理解Docker容器化技术及其在生产环境中的应用
深入理解Docker容器化技术及其在生产环境中的应用
171 0
|
运维 监控 数据可视化
自动化运维:使用Python脚本进行日志分析
【8月更文挑战第31天】当系统出现问题时,我们通常会查看日志寻找线索。然而,手动阅读大量日志既费时又易出错。本文将介绍如何使用Python脚本自动分析日志,快速定位问题,提高运维效率。我们将从简单的日志读取开始,逐步深入到复杂的正则表达式匹配和错误统计,最后实现一个自动化的日志监控系统。无论你是新手还是老手,这篇文章都将为你提供有价值的参考。让我们一起探索如何用代码解放双手,让运维工作变得更加轻松吧!
|
Java Spring
SpringBoot获取不到用户真实IP怎么办
通过以上方法,你可以在Spring Boot应用中获取用户的真实IP地址。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
425 5
|
SQL 中间件 数据库
Django 架构详解
【8月更文挑战第24天】
421 0
|
JavaScript 前端开发 UED
使用window.open打开新窗口的参数设置
使用window.open打开新窗口的参数设置
|
Docker 容器
Docker 容器的重启策略
Docker 容器的重启策略