1var splitArray = function (nums, m) {2let low = Math.max(...nums);3let high = 0;4let ans = 0;56for (let num of nums) {7high += num;8}910while (low <= high) {11let mid = Math.floor(low + (high - low) / 2); // to prevent overflow1213if (isPossible(nums, mid, m)) {14ans = mid;15high = mid - 1;16} else {17low = mid + 1;18}19}20return ans;21};2223function isPossible(arr, mid, noOfParts) {24let part = 1;25let sum = 0;2627for (let i = 0; i < arr.length; i++) {28sum += arr[i];2930if (sum > mid) {31part++;32sum = arr[i];33}34}35return part <= noOfParts;36}