美团第一题答案,结束之后才调试出来,渣渣
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            int[] arr = new int[n];
            for(int i=0;i<n;i++){
                arr[i]=sc.nextInt();
            }
            Arrays.sort(arr);
            int[] dp = new int[n+1];
            dp[0]=1;
            dp[1]=1;
            for(int i=2;i<n;i++){
                while(i<n && arr[i]==arr[i-1]){
                    dp[i] = dp[i-1];
                    i++;
                }
                if(i<n && arr[i] == arr[i-1]+1){
                    dp[i] = Math.max(dp[i-2]+1,dp[i-1]);
                }else{
                    dp[i] = Math.max(dp[i-1],dp[i-2])+1;
                }
            }
            System.out.print(dp[n-1]);
        }
    }
}
全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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