Codility - Triplet  

by ne on 2022-02-16 under Algo/DS/Problems tagged with codility

Hi,
The problem description is in the comments above the solution below.

The problem belongs to Codility, you can try out it yourself on their platform.


/**
 *A non-empty array A consisting of N integers is given. The product of triplet (P, Q, R) equates to A[P] * A[Q] * A[R] (0 ≤ P < Q < R < N).
 *
 * For example, array A such that:
 *   A[0] = -3
 *   A[1] = 1
 *   A[2] = 2
 *   A[3] = -2
 *   A[4] = 5
 *   A[5] = 6
 *
 * contains the following example triplets:
 *
 *         (0, 1, 2), product is −3 * 1 * 2 = −6
 *         (1, 2, 4), product is 1 * 2 * 5 = 10
 *         (2, 4, 5), product is 2 * 5 * 6 = 60
 *
 * Your goal is to find the maximal product of any triplet.
 */
import java.util.*;
public class Triplet {
    public int solution(int[] A) {
        Arrays.sort(A);
        int t = A[A.length - 3] * A[A.length - 2] * A[A.length - 1];
        int max = t;
        if (A[0] < 0) {
            t = A[0] * A[1] * A[A.length - 1];
            if (max < t) {
                max = t;
            }
        }
        return max;
    }
}