Rockin Retro Ответов: 2

Как мне выполнить эту задачу?


**QUESTION**

In a museum, the time when a customer comes in and gets out is registered. Therefore, there is a
journal, where you can get N intervals of time, where the value shows time when customer came
in, the second number shows time when customer got out of a museum.
You have to write a program, that calculates the maximum number of customers who were in a
museum at the same time

Sample input: 

6

 | 9:00 - 10:07 |

 | 10:20 - 11:35 |

 | 12:00 - 17:00 |

 | 11:00 - 11:30 |

 | 11:20 - 12:30 | 

 | 11:30 - 18:15 |

It shows the time when customers get in and out.

Sample output: 
4

So guys I need help with this one. I think this question can be done with for loop. 

Thanks!


Что я уже пробовал:

<pre lang="java"><pre>
     double in[] = {9, 10.20, 11, 11.20, 11.30, 12};
     double out[] = {10.07, 11.35, 11.30, 12.30, 18.15, 17};

     int total = 0;

     for(int i = 0; i< in.length; i++){
         for(int j = 0; j < out.length; j++){
             //not sure what to do here
          }
         }

     }
      System.out.println(total);

2 Ответов

Рейтинг:
2

OriginalGriff

Мы более чем готовы помочь тем, кто застрял, но это не значит, что мы здесь, чтобы сделать все это для вас! Мы не можем сделать всю работу, вам либо платят за это, либо это часть ваших оценок, и было бы совсем несправедливо, если бы мы сделали все это за вас.

Поэтому нам нужно, чтобы вы сделали работу, и мы поможем вам, когда вы застряли. Это не значит, что мы дадим вам пошаговое решение, которое вы можете сдать!
Начните с объяснения, где вы находитесь в данный момент и каков следующий шаг в этом процессе. Затем расскажите нам, что вы пытались сделать, чтобы этот следующий шаг сработал, и что произошло, когда вы это сделали.

Если у вас вообще возникли проблемы с началом работы, то это может помочь: Как написать код для решения проблемы, руководство для начинающих[^]


Рейтинг:
0

Richard MacCutchan

Не используйте двойные типы для представления времени, так как они подвержены неточностям. Преобразуйте каждый раз в минуты после полуночи. тогда просто подсчитать количество людей, присутствующих в любое время.


Rockin Retro

Я обратил их всех. Но я все равно не могу этого сделать...

Richard MacCutchan

Запишите значения на бумаге, посмотрите на различные значения и подумайте о том, как бы вы нашли, где присутствует большинство людей. Это упражнение в основном посвящено анализу и решению логической задачи; написание кода-самая легкая часть.

Rockin Retro

Я нарисовал таблицу. У меня есть строка наверху, которая показывает минуты. А ниже у меня есть строки, которые показывают, как каждый человек проводит время в музее. По этой таблице я могу четко видеть максимальное количество людей, которые были там в одно и то же время.

Richard MacCutchan

Так что теперь вам нужно найти набор правил, которые позволят вам делать это автоматически.

Rockin Retro

Поэтому я нашел способ, который называется пересечением множеств. Но я не уверен, что это правильный путь, потому что он не работает.

Rockin Retro

Кроме того, я должен представить его через 5 часов. Не могли бы вы, пожалуйста, выразить то, что вы имеете в виду, чтобы я мог сделать это как можно скорее PLS?

Richard MacCutchan

Не знаю, что еще я мог бы сказать. Это довольно простая проблема. Вам нужно найти момент во времени, когда большинство людей находятся внутри. Начните с самого раннего времени и шагайте через множество раз. Для каждого времени начала добавьте 1 к количеству людей внутри. Следите за временем и максимальным количеством людей. Для каждого конечного времени вычтите 1 из числа людей внутри. Когда вы обработали все значения времени, у вас должно быть время начала и окончания, где присутствовало максимальное число.