思路
利用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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。