//看完题目10分钟就A出来了,结果载在第二题上 import java.util.Arrays; import java.util.Scanner; public class Main5 { //先把数组排序  数相差大于10为界限 分成多个区 //每个区有三总情况:区的数量%3==0、1、2 //等于0的区不用加题目 //等于1的区加2个题目。x1:%3等于1的区的数量 //等于2的区加1个题目。x2:%3等于2的区的数量 //最后结果=x1*2+x2*1 public static int f(int[] arr){ Arrays.sort(arr); int n = arr.length; int j=1; int x1=0;//%3等于1的区的数量 int x2=0;//%3等于2的区的数量 for (int i = 0; i < n-1; i++) { if(arr[i+1]-arr[i]<=10){ j++;//计算每个区的数量 }else{ if(j%3==2){ x2++; } if(j%3==1){ x1++; } j=1; } } if(j%3==2){ x2++; } if(j%3==1){ x1++; } return x1*2+x2*1; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n  = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i]=sc.nextInt(); } System.out.println(f(arr)); } }
点赞 4

相关推荐

牛客网
牛客企业服务