public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int k = in.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = in.nextInt(); } Arrays.sort(arr); int a = 0, b = 0; int res = 1; while (b < n) { while (b < n && arr[b] - arr[a] <= k) b++; res = Math.max(res, b - a); if(b == n) break; while (a<b && arr[b] - arr[a] > k) a++; } System.out.println(res); }
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc= new Scanner(System.in); int n = sc.nextInt();//输入整数个数 int k = sc.nextInt();//间隔k ArrayList<Integer> list = new ArrayList<>(); for(int i=1;i<=n;i++){ list.add(sc.nextInt()); } Collections.sort(list);//将输入的整数从小到大排序 int max = 0; int len = list.size(); int start,end; for(start=0,end=0;end<len;){ if(list.get(end)-list.get(start)<=k) end++; else{ max = max<end-start?end-start:max; start++; } } max = max<end-start?end-start:max; System.out.println(max); } }