Advertisement
Vladislav8653

lesson 2

Mar 26th, 2023
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. package by.it.group251004.arefin.lesson02;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. /*
  7. Даны события events
  8. реализуйте метод calcStartTimes, так, чтобы число включений регистратора на
  9. заданный период времени (1) было минимальным, а все события events
  10. были зарегистрированы.
  11. Алгоритм жадный. Для реализации обдумайте надежный шаг.
  12. */
  13.  
  14. public class A_VideoRegistrator {
  15.  
  16.     public static void main(String[] args) {
  17.         A_VideoRegistrator instance=new A_VideoRegistrator();
  18.         double[] events=new double[]{1, 1.1, 1.6, 2.2, 2.4, 2.7, 3.9, 8.1, 9.1, 5.5, 3.7};
  19.         List<Double> starts=instance.calcStartTimes(events,1); //рассчитаем моменты старта, с длинной сеанса 1
  20.         System.out.println(starts);                            //покажем моменты старта
  21.     }
  22.     //модификаторы доступа опущены для возможности тестирования
  23.     public List<Double> calcStartTimes(double[] events, double workDuration){
  24.         //events - события которые нужно зарегистрировать
  25.         //timeWorkDuration время работы видеокамеры после старта
  26.         List<Double> result;
  27.         result = new ArrayList<>();
  28.         int i = 0; //i - это индекс события events[i]
  29.         int j = 0;
  30.         double capturedEvents;
  31.         Arrays.sort(events);
  32.         while (i != (events.length - 1)) {
  33.             result.add(events[i]);
  34.             capturedEvents = result.get(j) + workDuration; //то, сколько сейчас времени, после первого включения камеры и съемки
  35.             while ((capturedEvents >= events[i]) && (i < (events.length - 1)))
  36.                 i++;
  37.             j++;
  38.         }
  39.         return result;                        //вернем итог
  40.     }
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement