Divide and Conquer Recursive Solution [Accepted]
Below is a classic divide-and-conquer approach to solve this problem using recursion in C#. Although a little complex than the linear solution presented in Solu
Below is a classic divide-and-conquer approach to solve this problem using recursion in C#. Although a little complex than the linear solution presented in Solution tab, its intuitive and a common approach for "longest subsequence" kind of problems.\n\n```\npublic class Solution {\n    int FindLCIS_Iter(int[] a, int start, int end) {\n        if (start == end) {\n            return 1;\n        }\n        \n        int mid = start + (end - start) / 2;\n        int leftLcis = FindLCIS_Iter(a, start, mid);\n        int rightLcis = FindLCIS_Iter(a, mid + 1, end);\n\t\t\n        int currentLcis = FindLCIS(a, start, end, mid);\n        List<int> lcisList = new List<int>() { leftLcis, rightLcis, currentLcis };\n        lcisList.Sort();\n        return lcisList[lcisList.Count - 1];\n    }\n    \n    int FindLCIS(int[] a, int start, int end, int mid) {\n        int i = mid, j = mid;\n        while (i > start && a[i] > a[i - 1]) i -= 1;\n        while (j < end && a[j] < a[j + 1]) j += 1;\n        return j - i + 1;\n    }\n    \n    public int FindLengthOfLCIS(int[] nums) {\n        if (nums.Length < 2) return nums.Length;\n        return FindLCIS_Iter(nums, 0, nums.Length - 1);\n    }\n}\n```
[]