Here you can find the source of maxSubArrayNonContigious()
/**/* w w w . j av a2s . c o m*/ * Find the maximum possible sum of a non-contiguous subarray * @returns {Number} */ Array.prototype.maxSubArrayNonContigious = Array.prototype.maxSubArrayNonContigious || function () { let maxElement = null; let sum = null; this.forEach(element => { maxElement = maxElement === null || element > maxElement ? element : maxElement; sum += element > 0 ? element : 0; }); return sum > 0 ? sum : maxElement; };
'use strict'; Array.prototype.maxSubArray = function() { let maxToIndex = null; let currentMax = null; let maxElement = null; this.forEach((element) => { maxToIndex = Math.max(0, maxToIndex + element); currentMax = Math.max(currentMax, maxToIndex); maxElement = maxElement == null || element > maxElement ? element : maxElement; ...
'use strict'; Array.prototype.maxSubArray = Array.prototype.maxSubArray || function () { let maxToIndex = null; let currentMax = null; let maxElement = null; this.forEach(element => { maxToIndex = Math.max(0, maxToIndex + element); currentMax = Math.max(currentMax, maxToIndex); maxElement = maxElement === null || element > maxElement ? element : maxElement; ...
Array.prototype.maxSubArrayNonContigious = function() { let maxElement = null; let sum = null; this.forEach((element) => { maxElement = maxElement == null || element > maxElement ? element : maxElement; sum += element > 0 ? element : 0; }); return sum > 0 ? sum : maxElement; }; ...