首页 > 其他分享 >day-49 让所有学生保持开心的分组方法数

day-49 让所有学生保持开心的分组方法数

时间:2024-09-04 20:25:13浏览次数:5  
标签:sort get int nums 分组 49 ans Collections day

在这里插入图片描述
思路
利用Collections.sort()函数对数组进行排序,依次向后遍历即可,如果nums.get(i)<i+1&&nums.get(i+1)>i+1

解题过程
注意特殊情况:全选和不选要单独讨论

Code

class Solution {
    public int countWays(List<Integer> nums) {
        int len=nums.size();
        Collections.sort(nums);
        int ans=0;
        for(int i=0;i<len-1;i++){
         if(nums.get(i)<i+1&&nums.get(i+1)>i+1){
                ans++;
            }
        
        }
        if(nums.get(0)>0)ans++;
        if(nums.get(len-1)<len)ans++;
        return ans;
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/happy-students/solutions/2904871/rang-suo-you-xue-sheng-bao-chi-kai-xin-d-9nxo/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:sort,get,int,nums,分组,49,ans,Collections,day
From: https://blog.csdn.net/qq_53568730/article/details/141903130

相关文章

  • C语言学习笔记 Day16(文件管理--下)
    Day16 内容梳理:C语言学习笔记Day14(文件管理--上)-CSDN博客C语言学习笔记Day15(文件管理--中)-CSDN博客目录Chapter10 文件操作10.5文件状态10.6文件的随机读写fseek()、rewind()(1)fseek():移动光标并开始读写(2)rewind():将光标重置回文件开头10.7文件的删除remove(......
  • 代码随想录训练营 Day50打卡 图论part01 理论基础 98. 所有可达路径
    代码随想录训练营Day50打卡图论part01一、理论基础DFS(深度优先搜索)和BFS(广度优先搜索)在图搜索中的核心区别主要体现在搜索策略上:1、搜索方向:DFS:深度优先,一条路走到黑。DFS从起点开始,选择一个方向深入到底,遇到死胡同再回溯,换一个方向继续探索。这种方式适合解决路径......
  • 实训day43(9.4)
    一、前期准备1、配置主机映射[root@k8s-master~]#vim/etc/hosts192.168.8.168 k8s-master192.168.8.176 k8s-node1192.168.8.177 k8s-node2[root@k8s-master~]#pingk8s-master2、配置yum源[[email protected]]#vimkubernetes.repo[kuberne......
  • MarkDown学习Day01
    Markdown学习标题标题:“#”+“标题”二级标题:“##”+“标题”三级标题:“###”+“标题”以此类推,最多只支持到六级标题字体Hello,World!Hello,World!Hello,World!Hello,World!Hello,World!引用嘿嘿,猫猫,嘿嘿“>”分割线三个“---”三个“***”图片英文“![图片名字......
  • day04_编译原理学习
    第四章语法分析自顶向下分析的概述处理文法的编译器大致分为三种类型:通用型,自顶向下型和自底向上型。编译器中常用的方法可以分为自顶向下和自底向上。自顶向下分析从分析树的顶部(根节点)向底部(叶节点)方向构造分析树可以看成是从文法开始符号S推导出词串w的过程。每一步推......
  • NOIP2024集训Day21 DP常见模型2 - 背包
    NOIP2024集训Day21DP常见模型2-背包A.[BZOJ4987]Tree树形背包dp先考虑几个显而易见的性质:选出的点一定是相邻的对于选出的点,如果从\(a_k\)再走回\(a_1\),那么就相当于每条边经过了两次由于题目没有包含\(dis(a_k,a_1)\),因此就相当于选出的点中的一条链可以只......
  • NOIP2024集训Day20 DP常见模型1 - 序列
    NOIP2024集训Day20DP常见模型1-序列A.[JOI2022Final]Let'sWintheElection贪心+DP。首先,一定是所有协作者同时在同一个州演讲,这样才最优。然后,假设我们已经知道所有州的方案(支持、支持+协作、反对),那我们一定是先按照从小到大的顺序拿下所有“支持+协作”州,这样最优。......
  • NOIP2024集训Day22 DP常见模型3 - 区间
    NOIP2024集训Day22DP常见模型3-区间A.[SCOI2003]字符串折叠因为前面折叠了会对后面产生影响,所以很显然不能贪心。考虑区间DP。定义\(f_{i,j}\)表示\(i\)到\(j\)范围内可以折叠到的最短长度。答案为\(f_{1,n}\)。状态转移:对于\(f_{i,j}\),使用区间DP惯用套路,枚......
  • Linux基础入门 --5 DAY
    移动和重命名文件    mv命令可以实现文件或目录的移动或改名    同一分区移动数据,速度快:数据位置未变化    不同分区移动数据,速度相对较慢,数据位置发生了变化    格式:mv[OPTION]...[-T] SOURCE DESTmv[OPTION]...SOURCE...DIRE......
  • C++复习day02
    一、库函数的模拟实现1.memcpy的使用和模拟首先先来了解一下memcpy函数的作用是什么?void*memcpy(void*destination,constvoid*source,size_tnum);函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在遇到‘\0......