您的位置:首页 > 编程语言 > Java开发

笔试:最少再出几道题?补充题目

2016-09-21 22:54 183 查看
今天笔试遇到,记录下



import java.util.*;

/**
* @author XF
* 排序后,从小到大遍历。
* 第二个数与第一个差值<=10,10< && <=20,20<
* 根据各自的情况,进行补充和移动数组指针
*/
public class Main {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] ls = new int
;
for(int i=0; i<n; i++){
ls[i] = sc.nextInt();
}
Arrays.sort(ls);  //排序,从小到大
int result=0;
for(int i=0; i<n; i++){
int temp =  ls[i];
if(i==n-1){   //避免数组越界,单独检测最后两个元素
result+=2;
break;
}
if(i == n-2){
if(ls[n-1]-ls[n-2]<=20){
result +=1;
}else {
result += 4;
}
break;
}
if(ls[i+1]-temp<=10){ //第二个数差值小于等于10
if(ls[i+2]-ls[i+1]<=10){//第三个数差值小于等于10,数组已使用元素向前移动一位
i++;
}else{
result++;
}
i++;
}else if(ls[i+1]-temp>10 && ls[i+1]-temp<=20){//第二个数差值小于等于20,大于10
result++;
i++;
}else{   //大于20
result +=2;

}
}
System.out.println(result);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 补充题目