zoukankan      html  css  js  c++  java
  • interviewbit : Max Non Negative SubArrayBookmark Suggest Edit

    Find out the maximum sub-array of non negative numbers from an array.
    The sub-array should be continuous. That is, a sub-array created by choosing the second and fourth element and skipping the third element is invalid.

    Maximum sub-array is defined in terms of the sum of the elements in the sub-array. Sub-array A is greater than sub-array B if sum(A) > sum(B).

    Example:

    A : [1, 2, 5, -7, 2, 3]
    The two sub-arrays are [1, 2, 5] [2, 3].
    The answer is [1, 2, 5] as its sum is larger than [2, 3]
    

    NOTE: If there is a tie, then compare with segment's length and return segment which has maximum length
    NOTE 2: If there is still a tie, then return the segment with minimum starting index

    public class Solution {
        public ArrayList<Integer> maxset(ArrayList<Integer> a) {
            long maxSum = 0;
            long newSum = 0;
            ArrayList<Integer> maxArray = new ArrayList<Integer>();
            ArrayList<Integer> newArray = new ArrayList<Integer>();
            for (Integer i : a) {
                if (i >= 0) {
                    newSum += i;
                    newArray.add(i);
                } else {
                    newSum = 0;
                    newArray = new ArrayList<Integer>();
                }
                if ((maxSum < newSum) || ((maxSum == newSum) && (newArray.size() > maxArray.size()))) {
                    maxSum = newSum;
                    maxArray = newArray;
                }
            }
            return maxArray;
        }
    }
  • 相关阅读:
    Oracle expdp impdp中 exclude/include 的使用
    Oracle表空间迁移Move Tablespace
    m2ewtp的作用
    有意思的排序算法合并排序
    有意思的排序算法插入排序
    equals与“==”之惑
    简化的打印语句静态导入
    有意思的排序算法堆排序
    博客开篇语
    MySQL 整理笔记 张大哥
  • 原文地址:https://www.cnblogs.com/theskulls/p/5724743.html
Copyright © 2011-2022 走看看