Scribbling

[C++] vector sum, vector max 본문

Computer Science/C++

[C++] vector sum, vector max

focalpoint 2023. 8. 31. 00:26

 

LeetCode: 410. Split Array Largest Sum

https://leetcode.com/problems/split-array-largest-sum/description/

 

Split Array Largest Sum - LeetCode

Can you solve this real interview question? Split Array Largest Sum - Given an integer array nums and an integer k, split nums into k non-empty subarrays such that the largest sum of any subarray is minimized. Return the minimized largest sum of the split.

leetcode.com

class Solution {
public:
    int splitArray(vector<int>& nums, int k) {
        int ret = accumulate(nums.begin(), nums.end(), 0);
        int left = *max_element(nums.begin(), nums.end());
        int right(ret);
        while (left <= right) {
            int mid = (left + right) / 2;
            int n = numGroups(nums, mid);
            if (n <= k) {
                ret = min(ret, mid);
                right = mid - 1;
            }
            else {
                left = mid + 1;
            }
        }
        return ret;
    }

    int numGroups(vector<int>& nums, int limit) const {
        int ret = 0;
        int total = 0;
        for (int num : nums) {
            total += num;
            if (total > limit) {
                total = num;
                ret++;
            }
        }
        return ret + 1;
    }
};

'Computer Science > C++' 카테고리의 다른 글

[C++] vector sum, dp table with vector  (0) 2023.09.02
[C++] unordered_map, unordered_set, substr  (0) 2023.08.31
[C++] ostringstream, isdigit  (0) 2023.08.29
[C++] to_string, deque, string split  (0) 2023.08.24
[C++] istringstream  (0) 2023.08.22