给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。
如果可以,请返回 True;否则,返回 False。
示例 1:
输入:nums = [1,2,3,3,4,4,5,6], k = 4
输出:true
解释:数组可以分成 [1,2,3,4] 和 [3,4,5,6]。
代码
class Solution {public boolean isPossibleDivide(int[] nums, int k) {int n=nums.length;int start=0;if(n%k!=0) return false;//数量上不满足Arrays.sort(nums);for(int i=0;i<n;i++){if(nums[i]==-1) continue;//已经进了集合的int cur=nums[i],cnt=1;nums[i]=-1;//标记for(int j=i+1;j<n;j++){if(cnt==k) break;//找够了数if(nums[j]==-1) continue;if(nums[j]-cur==1)//如果满足递增{cur=nums[j];//迭代nums[j]=-1;//标记cnt++;}}if(cnt!=k) return false;}return true;}
}