반응형
https://leetcode.com/problems/split-array-largest-sum/submissions/
Split Array Largest Sum - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
class Solution {
public:
bool decide(vector<int>& nums, int k, int m){
int cnt = 0;
int add = 0;
for(int i=0; i<nums.size(); i++){
add += nums[i];
if(add==k){
add = 0;
cnt++;
}
else if(add>k){
add = nums[i];
cnt++;
}
}
if(add>0) cnt++;
return cnt<=m;
}
int splitArray(vector<int>& nums, int m) {
int lo = 0;
int hi = 0;
int maxx = 0;
for(int i=0; i<nums.size();i++){
hi += nums[i];
maxx = max(maxx, nums[i]);
}
while(lo<=hi){
int mid = (lo+hi)/2;
if(mid>=maxx && decide(nums, mid, m)){
hi = mid-1;
}
else{
lo = mid+1;
}
}
return lo;
}
};
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 2110번 : 공유기 설치 - binary search , Decide problem - C++ (0) | 2022.06.22 |
---|---|
[LeetCode] best-position-for-a-service-centre - ternary search (0) | 2022.06.22 |
백준 18223번: 민준이와 마산 그리고 건우 Java 다익스트라 (0) | 2022.06.13 |
백준 20010번 : 악덕 영주 혜유 - Java 크루스칼, 다익스트라 (0) | 2022.06.11 |
백준 1719번: 택배 - 플로이드와샬 Java (0) | 2022.06.11 |