设计导航网站大全see,泰安有限公司,太原网站建设公司5858,泰安网站制作工作室题目#xff1a;
给你一个下标从 0 开始、长度为 n 的整数数组 nums #xff0c;其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生#xff1a;
如果能够满足下述两个条件之一#xff0c;则认为第 i 位学生将会保持开心#xff1a;
…题目
给你一个下标从 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 10^5 0 nums[i] nums.length
java代码
class Solution {public int countWays(ListInteger nums) {int[] a nums.stream().mapToInt(i - i).toArray();Arrays.sort(a);int n a.length;int ans a[0] 0 ? 1 : 0; // 一个学生都不选for (int i 0; i n - 1; i) {if (a[i] i 1 i 1 a[i 1]) {ans;}}return ans 1; // 1 是因为可以都选}
}