From b2b1ad3724932d9ee78a17023f9e1dc5cb32f9a7 Mon Sep 17 00:00:00 2001 From: Tapajyoti Bose <44058757+ruppysuppy@users.noreply.github.com> Date: Sun, 21 Jun 2020 22:48:52 +0530 Subject: [PATCH] update (#197) Co-authored-by: itsvinayak --- 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 000000000..5c946e434 --- /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()