2
public static int firstOccurence(int[] arr, int target) {5
int end = arr.length - 1;7
int mid = start + (end - start) / 2;8
if (arr[mid] == target) {11
} else if (arr[mid] < target) {20
public static int lastOccurence(int[] arr, int target) {23
int end = arr.length - 1;24
while (start <= end) {25
int mid = start + (end - start) / 2;26
if (arr[mid] == target) {29
} else if (arr[mid] < target) {38
public int findLHS(int[] nums) {41
for (int i = 0; i < nums.length - 1; i++) {42
if (nums[i + 1] == nums[i] + 1) {43
int a = firstOccurence(nums, nums[i]);44
int b = lastOccurence(nums, nums[i] + 1);45
if (b - a + 1 > maxLen) maxLen = b - a + 1;