Skip to content

Commit dc2b35a

Browse files
committed
feat: add js solution to lc problem: No.0410
1 parent 9075b0d commit dc2b35a

File tree

3 files changed

+103
-0
lines changed

3 files changed

+103
-0
lines changed

solution/0400-0499/0410.Split Array Largest Sum/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,42 @@ func splitArray(nums []int, k int) int {
190190
}
191191
```
192192

193+
#### JavaScript
194+
195+
```js
196+
/**
197+
* @param {number[]} nums
198+
* @param {number} k
199+
* @return {number}
200+
*/
201+
var splitArray = function (nums, k) {
202+
let l = Math.max(...nums);
203+
let r = nums.reduce((a, b) => a + b);
204+
205+
const check = mx => {
206+
let [s, cnt] = [0, 0];
207+
for (const x of nums) {
208+
s += x;
209+
if (s > mx) {
210+
s = x;
211+
if (++cnt === k) return false;
212+
}
213+
}
214+
return true;
215+
};
216+
217+
while (l < r) {
218+
const mid = (l + r) >> 1;
219+
if (check(mid)) {
220+
r = mid;
221+
} else {
222+
l = mid + 1;
223+
}
224+
}
225+
return l;
226+
};
227+
```
228+
193229
#### TypeScript
194230

195231
```ts

solution/0400-0499/0410.Split Array Largest Sum/README_EN.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,42 @@ func splitArray(nums []int, k int) int {
184184
}
185185
```
186186

187+
#### JavaScript
188+
189+
```js
190+
/**
191+
* @param {number[]} nums
192+
* @param {number} k
193+
* @return {number}
194+
*/
195+
var splitArray = function (nums, k) {
196+
let l = Math.max(...nums);
197+
let r = nums.reduce((a, b) => a + b);
198+
199+
const check = mx => {
200+
let [s, cnt] = [0, 0];
201+
for (const x of nums) {
202+
s += x;
203+
if (s > mx) {
204+
s = x;
205+
if (++cnt === k) return false;
206+
}
207+
}
208+
return true;
209+
};
210+
211+
while (l < r) {
212+
const mid = (l + r) >> 1;
213+
if (check(mid)) {
214+
r = mid;
215+
} else {
216+
l = mid + 1;
217+
}
218+
}
219+
return l;
220+
};
221+
```
222+
187223
#### TypeScript
188224

189225
```ts
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
var splitArray = function (nums, k) {
7+
let l = Math.max(...nums);
8+
let r = nums.reduce((a, b) => a + b);
9+
10+
const check = mx => {
11+
let [s, cnt] = [0, 0];
12+
for (const x of nums) {
13+
s += x;
14+
if (s > mx) {
15+
s = x;
16+
if (++cnt === k) return false;
17+
}
18+
}
19+
return true;
20+
};
21+
22+
while (l < r) {
23+
const mid = (l + r) >> 1;
24+
if (check(mid)) {
25+
r = mid;
26+
} else {
27+
l = mid + 1;
28+
}
29+
}
30+
return l;
31+
};

0 commit comments

Comments
 (0)