给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
示例 1:
输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。
package com.taotao.test2.test;
import java.util.*;
/**
* @program: test2
* @ClassName Test2
* @description: 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
* @author: wangjin
* @create: 2023-10-09 15:35
* @Version 1.0
**/
public class Test2 {
public static void main(String[] args) {
List list = new ArrayList();
int arr[] = {100, 4, 200, 1, 3, 2};
Arrays.sort(arr);
// System.out.println(Arrays.toString(arr));
for (int i = 0; i < arr.length; i++) {
int j = 0;
int k = comparison(i, j, arr);
list.add(k);
}
Collections.sort(list);
System.out.println(list.get(list.size() - 1));
}
public static int comparison(int i, int j, int arr[]) {
j++;
Map map = new HashMap();
if (i + j < arr.length) {
if (arr[i] + j == arr[i + j]) {
return comparison(i, j, arr);
} else {
return j;
}
}
return j;
}
}
网友评论