链接:
https://www.nowcoder.com/questionTerminal/c3083cd30d5043e1b95000f139b5b2c9?orderByHotValue=1&page=1&onlyReference=false
来源:牛客网
牛牛的好朋友羊羊在纸上写了n+1个整数,羊羊接着抹除掉了一个整数,给牛牛猜他抹除掉的数字是什么。牛牛知道羊羊写的整数神排序之后是一串连续的正整数,牛牛现在要猜出所有可能是抹除掉的整数。例如:
10 7 12 8 11 那么抹除掉的整数只可能是9
来源:牛客网
牛牛的好朋友羊羊在纸上写了n+1个整数,羊羊接着抹除掉了一个整数,给牛牛猜他抹除掉的数字是什么。牛牛知道羊羊写的整数神排序之后是一串连续的正整数,牛牛现在要猜出所有可能是抹除掉的整数。例如:
10 7 12 8 11 那么抹除掉的整数只可能是9
5 6 7 8 那么抹除掉的整数可能是4也可能是9
输入描述:
输入包括2行: 第一行为整数n(1 <= n <= 50),即抹除一个数之后剩下的数字个数 第二行为n个整数num[i] (1 <= num[i] <= 1000000000)
输出描述:
在一行中输出所有可能是抹除掉的数,从小到大输出,用空格分割,行末无空格。如果没有可能的数,则输出mistake
输入例子:
2 3 6
输出例子:
mistake
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner in=new Scanner(System.in); int N=in.nextInt();//N为数的个数 int[] num=new int[N];//num为具体的N个数 for(int i=0;i<N;i++){ num[i]=in.nextInt(); } for(int i=0;i<N-1;i++){//排序N个数 for(int j=0;j<N-1-i;j++){ if(num[j+1]<num[j]){ int t=num[j]; num[j]=num[j+1]; num[j+1]=t; } } } int st=num[0]; int i=1; Boolean f=false;//f表示是否满足缺值在序列中间 Boolean k=false;//k表示有序的序列中是否是连续 for(;i<num.length;i++){ if(((num[i]-st)!=i&&(num[i]-num[i-1]==2))){ k=true; break; } } if(!k){ for(int j=1;j<N-1;j++){ if(num[j]-num[j-1]==1){ f=true; continue; }else{ f=false; } } if(f){ System.out.println(num[0]-1+" "+(int)(num[N-1]+1)); }else{ System.out.println("mistake"); } }else{ System.out.println(st+i); } } }