美团第一题答案,结束之后才调试出来,渣渣
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]);
}
}
}
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]);
}
}
}
全部评论
相关推荐
10-31 13:04
南华大学 Java
嵌入式的小白:很多面试,面试前不会去打扰cto的,但一般cto不会在这些小事上刷人,只能说这个cto比较操心,啥重要不重要,紧急不紧急的,估计都会过问,平淡看待吧 点赞 评论 收藏
分享
小天才公司福利 1322人发布
查看2道真题和解析