Codility - Triplet
by ne on 2022-02-16 under Algo/DS/Problems tagged with codility
/**
*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;
}
}