Guest User

Untitled

a guest
Sep 29th, 2020
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4. import java.util.stream.Collectors;
  5.  
  6. public class Main {
  7.  
  8. public static ArrayList<Integer> findNearestNumber(ArrayList<Integer> l1, ArrayList<Integer> l2) {
  9. Collections.sort(l1);
  10. Integer number = l2.get(0);
  11. Integer index = 0;
  12.  
  13. Integer distance = Math.abs(l1.get(0) - number);
  14. for (Integer c = 1; c < l1.size(); c++) {
  15. Integer cdistance = Math.abs(l1.get(c) - number);
  16.  
  17. if (cdistance < distance) {
  18. index = c;
  19. distance = cdistance;
  20. }
  21. }
  22. for (Integer c = 0; c < l1.size(); c++) {
  23. Integer cdistance = Math.abs(l1.get(c) - number);
  24. if (number == l1.get(c)) {
  25. l2.add(number);
  26. }
  27. if (cdistance.equals(distance) && number > l1.get(c)) {
  28. l2.add(l1.get(index));
  29. }
  30. if (cdistance.equals(distance) && number < l1.get(c)) {
  31. l2.add(l1.get(c));
  32. }
  33. }
  34. l2.remove(0);
  35. return l2;
  36. }
  37.  
  38. public static void main(String[] args) {
  39. Scanner sc = new Scanner(System.in);
  40.  
  41. ArrayList<Integer> list1 = readArrayList(sc);
  42. ArrayList<Integer> list2 = readArrayList(sc);
  43.  
  44. ArrayList<Integer> result = findNearestNumber(list1, list2);
  45.  
  46. result.forEach(n -> System.out.print(n + " "));
  47.  
  48. }
  49.  
  50. private static ArrayList<Integer> readArrayList(Scanner scanner) {
  51. return Arrays
  52. .stream(scanner.nextLine().split("\\s+"))
  53. .map(Integer::parseInt)
  54. .collect(Collectors.toCollection(ArrayList::new));
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment