public int splitArray(int[] nums, int m) {
int low = Integer.MIN_VALUE, high = 0, mid = 0;
low = Math.max(low, num);
mid = low + (high - low) / 2;
if (!isValid(nums, m - 1, mid)) {
return isValid(nums, m - 1, low) ? low : high;
public boolean isValid(int[] nums, int cuts, int target) {
if (sum + num <= target) {