給你一個整數數組 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;}
}