Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.stream.Collectors;
- public class Main {
- public static ArrayList<Integer> findNearestNumber(ArrayList<Integer> l1, ArrayList<Integer> l2) {
- Collections.sort(l1);
- Integer number = l2.get(0);
- Integer index = 0;
- Integer index2 = 0;
- Integer distance = Math.abs(l1.get(0) - number);
- for(Integer c = 1; c < l1.size(); c++){
- Integer cdistance = Math.abs(l1.get(c) - number);
- if (cdistance < distance) {
- index = c;
- distance = cdistance;
- }
- if (distance == cdistance) {
- index2 = c;
- }
- }
- l2.remove(0);
- l2.add(l1.get(index));
- l2.add(l1.get(index2));
- return l2;
- }
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- ArrayList<Integer> list1 = readArrayList(sc);
- ArrayList<Integer> list2 = readArrayList(sc);
- ArrayList<Integer> result = findNearestNumber(list1, list2);
- result.forEach(n -> System.out.print(n + " "));
- }
- private static ArrayList<Integer> readArrayList(Scanner scanner) {
- return Arrays
- .stream(scanner.nextLine().split("\\s+"))
- .map(Integer::parseInt)
- .collect(Collectors.toCollection(ArrayList::new));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment