nupanick

triangleMaxSum

Jul 11th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Plain JS:
  2. function triangleMaxSum(triangle, startPos) {
  3.     const [row, column] = startPos || [0, 0];
  4.     const n = triangle.length - row;
  5.     const cap = triangle[row][column];
  6.     // base case
  7.     if (n == 1) return cap;
  8.     // recursive case
  9.     const leftSum = triangleMaxSum(triangle, [row + 1, column]);
  10.     const rightSum = triangleMaxSum(triangle, [row + 1, column + 1]);
  11.     return cap + Math.max(leftSum, rightSum);
  12. }
  13.  
  14. // "lambda" JS:
  15. const triangleMaxSum = (triangle, row, column) => (row == undefined)
  16.     ? triangleMaxSum(triangle, 0, 0)
  17.     : (triangle.length - row == 1)
  18.         // base case
  19.         ? triangle[row][column]
  20.         // recursive case
  21.         : triangle[row][column] + Math.max(
  22.             triangleMaxSum(triangle, row + 1, column),
  23.             triangleMaxSum(triangle, row + 1, column + 1))
Advertisement
Add Comment
Please, Sign In to add comment