长沙做网站公司哪家好,网站内链 外链,网站秒收录,网页制作设计公司排名题目链接#xff1a;410. 分割数组的最大值#xff08;困难#xff09; 算法原理#xff1a; 解法#xff1a;二分查找贪心 0ms击败100.00% 时间复杂度O(Nlogn) ①目标变量#xff1a;每个数组的和#xff08;最大值#xff09; ②目标条件#xff1a;将数组分成k份 for(int x:nums){ leftMath.max(left,x); rightx; } while(leftright){ int midleft(right-left)/2; if(!check(mid,nums,k)) leftmid1; else rightmid; } return left; } //判断是否能将nums分割为≤k个子数组且每个子数组的和都≤mid private boolean check(int mid,int[] nums, int k){ //当前子数组累加和 int sum0; //子数组计数初始为1至少一个子数组 int cnt1; for(int x:nums){ if(sumxmid){ sumx; continue; } if(cntk) return false; cnt; sumx; } return true; } }