Max double slice sum

前端 未结 14 1202
后悔当初
后悔当初 2020-12-13 20:53

Recently, I tried to solve the Max Double Slice Sum problem in codility which is a variant of max slice problem. My Solution was to look for a slice that has maximum value w

14条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-13 20:55

    C# solution 100/100

    public int solution(int[] A) {
            int[] forw = new int[A.Length];
            int[] rewi = new int[A.Length];
    
            bool isAllNeg = true;
            for (int i = 1; i < A.Length; i++)
            {
                forw[i] = Math.Max(0, forw[i - 1] + A[i]);
                if (A[i] > 0 && isAllNeg) isAllNeg = false;
    
            }
    
            if (isAllNeg)
                return 0;
    
            for (int i = A.Length - 2; i >= 0; i--)
            {
                rewi[i] = Math.Max(0, rewi[i + 1] + A[i]);
            }
    
            int maxsum = 0;
            for (int i = 1; i < A.Length - 1; i++)
            {
                maxsum = Math.Max(maxsum, forw[i - 1] + rewi[i + 1]);
            }
    
            return maxsum;
    }
    

提交回复
热议问题