DDSA Solutions

LCM Triplet

Time: O(1)
Space: O(1)

Problem Overview

Find triplet with maximum LCM.

See our study guide for structured GFG and LeetCode practice.

Intuition

Find triplet with maximum LCM. LCM is maximized by largest three consecutive integers or similar.

Algorithm

  1. 1Check triplets near n: (n,n-1,n-2), (n,n-1,n-3) when n-2 is even, etc. Compute LCM for candidates.

Common Pitfalls

  • Do not just pick three largest; even numbers reduce LCM. Check a few candidate triplets near n.
LCM Triplet.java
Java
// Approach: For any n>=3 the answer is among {n, n-1, n-2} or {n, n-1, n-3} or similar small cases.
// Time: O(1) Space: O(1)
class Solution {
    int lcmTriplets(int n) {
        int ans;

        if (n < 3)
            ans = n;
        // If n is odd, the product of the top 3 numbers gives maximum LCM
        else if (n % 2 != 0)
            ans = n * (n - 1) * (n - 2);
        // If n is even and not divisible by 3, use n, n-1, n-3
        else if (n % 3 != 0)
            ans = n * (n - 1) * (n - 3);
        // If n is even and divisible by 3, use n-1, n-2, n-3
        else
            ans = (n - 1) * (n - 2) * (n - 3);

        return ans;
    }
}
Was this solution helpful?