Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Plain JS:
- function triangleMaxSum(triangle, startPos) {
- const [row, column] = startPos || [0, 0];
- const n = triangle.length - row;
- const cap = triangle[row][column];
- // base case
- if (n == 1) return cap;
- // recursive case
- const leftSum = triangleMaxSum(triangle, [row + 1, column]);
- const rightSum = triangleMaxSum(triangle, [row + 1, column + 1]);
- return cap + Math.max(leftSum, rightSum);
- }
- // "lambda" JS:
- const triangleMaxSum = (triangle, row, column) => (row == undefined)
- ? triangleMaxSum(triangle, 0, 0)
- : (triangle.length - row == 1)
- // base case
- ? triangle[row][column]
- // recursive case
- : triangle[row][column] + Math.max(
- triangleMaxSum(triangle, row + 1, column),
- triangleMaxSum(triangle, row + 1, column + 1))
Advertisement
Add Comment
Please, Sign In to add comment