欢迎光临散文网 会员登陆 & 注册

马老师Python全系列大师课2022

2022-10-09 23:08 作者:抽抽一生恋  | 我要投稿

  public boolean divideGroups(int[] nums, int start, int target, int current, int k) {          if (k == 1) return true; // 分组操作执行k-1次之后,最后剩余的元素,就是最后一组了,不需要再匹配              if (current == target) return divideGroups(nums, nums.length - 1, target, 0, k - 1); // 分组操作执行k-1次后,最后剩余的元素,就是最后一组了,不需要再匹配              for (int i = start; i >= 0; i--) {            if (numUsed[i] == 1 || current + nums[i] > target) continue; // 被使用的元素,不能再次使用;总和大于目标值,也不能使用            numUsed[i] = 1; // 标记占用            if (divideGroups(nums, i - 1, target, current + nums[i], k)) return true;            numUsed[i] = 0; // 撤销标记            while (i > 0 && nums[i - 1] == nums[i]) i--; // 例如“12333333...”,假如最右侧的“3”这个值没有匹配上,那么它左侧的剩余五个“3”都不需要再匹配了。        }        return false;

马老师Python全系列大师课2022的评论 (共 条)

分享到微博请遵守国家法律