Nodejs Array Max Sub Array maxSubArrayNonContigious()

Here you can find the source of maxSubArrayNonContigious()

Method Source Code

/**//from w w w .j av a2s.  c o  m
 * Find the maximum possible sum of a non-contiguous subarray
 * @returns {Number}
 */
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;
};

Related

  1. maxSubArray()
    '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;
    ...
    
  2. maxSubArray()
    '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;
    ...
    
  3. maxSubArrayNonContigious()
    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;
    };
    ...