import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class zhaoshangyinghang { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int k = scanner.nextInt(); List<Integer> list = new ArrayList<>(); for (int i = 0; i < n; i++) { list.add(scanner.nextInt()); } Collections.sort(list); Map<Integer, List<List<Integer>>> map = new HashMap<>(); int maxSize = 0; for (int i = 0; i < n; i++) { List<Integer> list1 = new ArrayList<>(); for (int j = i; j < n; j++) { if (list.get(j) - list.get(i) <= k) { list1.add(list.get(j)); } else { break; } } maxSize = Math.max(maxSize, list1.size()); map.computeIfAbsent(list1.size(), ls -> new ArrayList<>()).add(list1); } List<List<Integer>> maxLists = map.get(maxSize); int max = 0; for (List<Integer> maxList : maxLists) { ArrayList<Integer> copyList = new ArrayList<>(list); copyList.removeAll(maxList); for (int j = 0; j < copyList.size(); j++) { List<Integer> list1 = new ArrayList<>(); for (int l = j; l < copyList.size(); l++) { if (copyList.get(l) - copyList.get(j) <= k) { list1.add(copyList.get(l)); } } max = Math.max(max, list1.size()); } } System.out.println(max + maxSize); } }
招商银行编程第三题题解
最新推荐文章于 2022-04-12 16:43:10 发布