From d3547ee426d29aaa5d614fbb78fa6f6e114b8bd3 Mon Sep 17 00:00:00 2001 From: itsvinayak Date: Sun, 21 Jun 2020 22:43:03 +0530 Subject: [PATCH] update --- Dynamic-Programming/MaxNonAdjacentSum.js | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Dynamic-Programming/MaxNonAdjacentSum.js diff --git a/Dynamic-Programming/MaxNonAdjacentSum.js b/Dynamic-Programming/MaxNonAdjacentSum.js new file mode 100644 index 0000000000..5c946e434e --- /dev/null +++ b/Dynamic-Programming/MaxNonAdjacentSum.js @@ -0,0 +1,29 @@ +function maximumNonAdjacentSum (nums) { + /* + * Find the maximum non-adjacent sum of the integers in the nums input list + * :param nums: Array of Numbers + * :return: The maximum non-adjacent sum + */ + + if (nums.length < 0) return 0 + + let maxIncluding = nums[0] + let maxExcluding = 0 + + for (const num of nums.slice(1)) { + const temp = maxIncluding + maxIncluding = maxExcluding + num + maxExcluding = Math.max(temp, maxExcluding) + } + + return Math.max(maxExcluding, maxIncluding) +} + +function main () { + console.log(maximumNonAdjacentSum([1, 2, 3])) + console.log(maximumNonAdjacentSum([1, 5, 3, 7, 2, 2, 6])) + console.log(maximumNonAdjacentSum([-1, -5, -3, -7, -2, -2, -6])) + console.log(maximumNonAdjacentSum([499, 500, -3, -7, -2, -2, -6])) +} + +main()