教育改变生活

标题: Java编程-数组中的最长连续子序列 [打印本页]

作者: 一秉    时间: 2020-9-14 17:16
标题: Java编程-数组中的最长连续子序列
问题描述:给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)

示例1
输入:[100,4,200,1,3,2]
输出:4
示例2
输入:[1,1,1]
输出:1
备注:
1≤n≤10^5
1≤arr.length≤10^8
实现代码:
import java.util.*;

public class Solution {
    /**
     * max increasing subsequence
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int MLS (int[] arr) {
        // write code here
        if(arr.length<2){
            return arr.length;
        }
        Arrays.sort(arr);
        int max = 1;
        int cur = 1;
        for(int i = 1;i < arr.length;i++){
            if(arr[i]-arr[i-1]==0){
                continue;
            }
            if(arr[i]-arr[i-1]==1){
                cur++;
                if(cur>max){
                    max = cur;
                }
            }
            else{
                if(cur>max){
                    max = cur;
                }
                cur = 1;
            }
        }
        return max;
    }
}





欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2