<p>A sequence <code>x<sub>1</sub>, x<sub>2</sub>, ..., x<sub>n</sub></code> is <em>Fibonacci-like</em> if:</p> <ul> <li><code>n >= 3</code></li> <li><code>x<sub>i</sub> + x<sub>i+1</sub> == x<sub>i+2</sub></code> for all <code>i + 2 <= n</code></li> </ul> <p>Given a <b>strictly increasing</b> array <code>arr</code> of positive integers forming a sequence, return <em>the <strong>length</strong> of the longest Fibonacci-like subsequence of</em> <code>arr</code>. If one does not exist, return <code>0</code>.</p> <p>A <strong>subsequence</strong> is derived from another sequence <code>arr</code> by deleting any number of elements (including none) from <code>arr</code>, without changing the order of the remaining elements. For example, <code>[3, 5, 8]</code> is a subsequence of <code>[3, 4, 5, 6, 7, 8]</code>.</p> <p> </p> <p><strong>Example 1:</strong></p> <pre> <strong>Input:</strong> arr = [1,2,3,4,5,6,7,8] <strong>Output:</strong> 5 <strong>Explanation:</strong> The longest subsequence that is fibonacci-like: [1,2,3,5,8].</pre> <p><strong>Example 2:</strong></p> <pre> <strong>Input:</strong> arr = [1,3,7,11,12,14,18] <strong>Output:</strong> 3 <strong>Explanation</strong>:<strong> </strong>The longest subsequence that is fibonacci-like: [1,11,12], [3,11,14] or [7,11,18].</pre> <p> </p> <p><strong>Constraints:</strong></p> <ul> <li><code>3 <= arr.length <= 1000</code></li> <li><code>1 <= arr[i] < arr[i + 1] <= 10<sup>9</sup></code></li> </ul>