We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent b86320e commit 273bc94Copy full SHA for 273bc94
0410. Split Array Largest Sum.cpp
@@ -0,0 +1,41 @@
1
+// 410. Split Array Largest Sum
2
+
3
+class Solution
4
+{
5
+public:
6
+ int canSplit(int mid, vector<int> &nums, int &m)
7
+ {
8
+ int sum = 0;
9
+ int curr_sum = 0;
10
+ for (int i : nums)
11
12
+ curr_sum += i;
13
+ if (curr_sum > mid)
14
15
+ sum += 1;
16
+ curr_sum = i;
17
+ }
18
19
+ return (sum + 1 <= m);
20
21
22
+ int splitArray(vector<int> &nums, int m)
23
24
+ int left = *max_element(nums.begin(), nums.end());
25
+ int right = accumulate(nums.begin(), nums.end(), 0);
26
+ int res = right; // larger of two
27
+ while (left <= right)
28
29
+ int mid = left + (right - left) / 2;
30
+ if (canSplit(mid, nums, m))
31
32
+ res = mid;
33
+ right = mid - 1;
34
35
+ else
36
+ left = mid + 1;
37
38
39
+ return res;
40
41
+};
0 commit comments