Sum items per segment given cut indices (cut at i ⇒ segment starts at i-1).
(triggerItems: number[], cuts: number[])
| 2616 | |
| 2617 | /** Sum items per segment given cut indices (cut at i ⇒ segment starts at i-1). */ |
| 2618 | function segmentSums(triggerItems: number[], cuts: number[]): number[] { |
| 2619 | const breakpoints = [0, ...cuts.map(c => c - 1), triggerItems.length]; |
| 2620 | const sums: number[] = []; |
| 2621 | for (let s = 0; s < breakpoints.length - 1; s++) { |
| 2622 | let h = 0; |
| 2623 | for (let k = breakpoints[s]; k < breakpoints[s + 1]; k++) h += triggerItems[k]; |
| 2624 | sums.push(h); |
| 2625 | } |
| 2626 | return sums; |
| 2627 | } |
| 2628 | |
| 2629 | /** |
| 2630 | * Partition `triggerH` into K contiguous segments minimising the maximum |
no outgoing calls
no test coverage detected