> For the complete documentation index, see [llms.txt](https://mayanktyagi3111.gitbook.io/interview-prep/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mayanktyagi3111.gitbook.io/interview-prep/strings-arrays-and-2-pointers/triplets-with-sum-between-given-range.md).

# Triplets with Sum between given range

Given an array of real numbers greater than zero in form of strings.\
Find if there exists a **triplet** (a,b,c) such that **1** < **a+b+c** < **2** .\
Return **1** for **true** or **0** for **false**.

**Example:**

Given \[0.6, 0.7, 0.8, 1.2, 0.4] ,

You should return **1**

as

0.6+0.7+0.4=1.7

1<1.7<2

Hence, the output is 1.

**O(n)** solution is expected.

**Note**: You can assume the numbers in strings don’t overflow the primitive data type and there are no leading zeroes in numbers. Extra memory usage is allowed.

```java
public class Solution {
    public int solve(String[] A) {
        if (A.length < 3)
            return 0;
        double a = Double.parseDouble(A[0]);
        double b = Double.parseDouble(A[1]);
        double c = Double.parseDouble(A[2]);
        for (int i = 3; i < A.length; i++) {
            if (a + b + c >= 1 && a + b + c <= 2)
                return 1;
            else if (a + b + c > 2) {
                if (a > c && a > b)
                    a = Double.parseDouble(A[i]);
                else if (b > c)
                    b = Double.parseDouble(A[i]);
                else
                    c = Double.parseDouble(A[i]);

            } else {
                if (a < c && a < b)
                    a = Double.parseDouble(A[i]);
                else if (b < c)
                    b = Double.parseDouble(A[i]);
                else
                    c = Double.parseDouble(A[i]);
            }
        }
        if (a + b + c >= 1 && a + b + c <= 2)
            return 1;
        else
            return 0;
    }
}
```
