最长和谐连续子序列

最长和谐连续子序列

https://www.nowcoder.com/questionTerminal/36d7037abcad45228d859c28d522fd9c

对不起 我直接暴力了 O(n^3)

如果用滑动窗口感觉可以到 O(n^2)

import java.util.Scanner;
import java.util.ArrayList;

public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        ArrayList<Integer> items = new ArrayList<Integer>();
        while(in.hasNext()){
            items.add(in.nextInt());
        }

        Integer[] input = items.toArray(new Integer[0]);

        int max_cur = 0;
        int res = 0;

        for(int i=0;i<input.length;i++){
            for(int j =i+1;j< input.length;j++){
                int [] maxmin = find_maxmin(input,i,j);
                if(maxmin[0]-maxmin[1] == 1) {
                    max_cur = j-i+1;
                    res = Math.max(max_cur,res);
                }
            }
        }

        System.out.println(res);
    }


    public static int[] find_maxmin(Integer[] input, int l, int r){
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        for(int i=l;i<=r;i++){
            max = Math.max(max,input[i]);
            min = Math.min(min,input[i]);

        }
        return new int[]{max,min};
    }
}
全部评论

相关推荐

09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务