题解 | #相差不超过k的最多数#
相差不超过k的最多数
https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StreamTokenizer st = new StreamTokenizer(br); st.nextToken(); int n = (int)st.nval; int[] nums = new int[n]; st.nextToken(); int k = (int)st.nval; for (int i = 0 ; i < n ; i++) { st.nextToken(); nums[i] = (int)st.nval; } Arrays.sort(nums); int count = 0; int r = 0, l = 0; while (r < n) { if (nums[r] - nums[l] > k) { //左指针右移 l++; } count = Math.max(count, r - l + 1); //右指针右移保持前一次最大长度 r++; } System.out.println(count); } }