888023. Valid Triangle

Easy

Valid Triangle

Summary

Given three points in a 2D plane, determine if they can form a valid triangle. A triangle is considered valid if its sides satisfy the triangle inequality theorem: for each side, the sum of the other two sides must be greater than or equal to that side.

Detailed Explanation

To solve this problem, we need to check if the three given points can form a valid triangle. We can do this by applying the triangle inequality theorem to each possible combination of sides.

Let's assume the three points are A(x1, y1), B(x2, y2), and C(x3, y3). We'll calculate the lengths of the sides AB, BC, and CA using the distance formula: distance = sqrt((x2 - x1)^2 + (y2 - y1)^2). Then, we'll check if each side satisfies the triangle inequality theorem.

Here's a step-by-step breakdown:

  1. Calculate the length of side AB: AB = sqrt((x2 - x1)^2 + (y2 - y1)^2)
  2. Check if BC and CA satisfy the triangle inequality theorem for side AB:
    • BC >= AB and CA >= AB
  3. Repeat steps 1-2 for sides BC and CA:
    • Calculate the length of side BC: BC = sqrt((x3 - x2)^2 + (y3 - y2)^2)
    • Check if AB and AC satisfy the triangle inequality theorem for side BC:
      • AB >= BC and AC >= BC
    • Repeat for side CA:
      • Calculate the length of side CA: CA = sqrt((x1 - x3)^2 + (y1 - y3)^2)
      • Check if AB and BC satisfy the triangle inequality theorem for side CA:
        • AB >= CA and BC >= CA
  4. If all sides satisfy the triangle inequality theorem, then the three points can form a valid triangle.

Time complexity: O(1), as we only perform constant-time operations (calculating distances and comparing values).

Space complexity: O(1), as we only use a few variables to store the point coordinates and calculated distances.

Optimized Solutions

Java

java
public boolean isValidTriangle(int x1, int y1, int x2, int y2, int x3, int y3) {
    double AB = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
    double BC = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2));
    double CA = Math.sqrt(Math.pow(x1 - x3, 2) + Math.pow(y1 - y3, 2));

    return (BC >= AB && CA >= AB) || (AB >= BC && CA >= BC) || (AB >= CA && BC >= CA);
}

Python

python
def is_valid_triangle(x1, y1, x2, y2, x3, y3):
    ab = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
    bc = ((x3 - x2) ** 2 + (y3 - y2) ** 2) ** 0.5
    ca = ((x1 - x3) ** 2 + (y1 - y3) ** 2) ** 0.5

    return (bc >= ab and ca >= ab) or (ab >= bc and ca >= bc) or (ab >= ca and bc >= ca)

C++

cpp
bool isValidTriangle(int x1, int y1, int x2, int y2, int x3, int y3) {
    double AB = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2));
    double BC = sqrt(pow(x3 - x2, 2) + pow(y3 - y2, 2));
    double CA = sqrt(pow(x1 - x3, 2) + pow(y1 - y3, 2));

    return (BC >= AB && CA >= AB) || (AB >= BC && CA >= BC) || (AB >= CA && BC >= CA);
}

JavaScript

javascript
function isValidTriangle(x1, y1, x2, y2, x3, y3) {
    let ab = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
    let bc = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2));
    let ca = Math.sqrt(Math.pow(x1 - x3, 2) + Math.pow(y1 - y3, 2));

    return (bc >= ab && ca >= ab) || (ab >= bc && ca >= bc) || (ab >= ca && bc >= ca);
}
View on GeeksforGeeks

Not available

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.