Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class FlightStopsCounter {
- ArrayList<Flight> flights;
- int max_air_time;
- public FlightStopsCounter(ArrayList<Flight> flights, int max_air_time) {
- super();
- this.flights = flights;
- this.max_air_time = max_air_time;
- }
- public Date getDateByAppending(int minutes, Date date) {
- long ONE_MINUTE_IN_MILLIS = 60000;
- Date endDate = new Date(date.getTime() + (minutes*ONE_MINUTE_IN_MILLIS));
- return endDate;
- }
- public int getMaxNumberOfSteps(ArrayList<Flight> flights, int accum, Date date_point, String origin) {
- int max_count = 0;
- Date filter_date = getDateByAppending(2880,date_point);
- int i = 0;
- while(i < flights.size() && flights.get(i).getReal_time().before(filter_date)) {
- Flight flight = flights.get(i);
- if(flight.getOrigin.equals(origin){
- Date copy = getDateByAppending(flight.air_time, flight.real_time);
- ArrayList<Flight> filter_flights = new ArrayList<Flight>(flights.subList(i+1, flights.size()-1));
- int count = getMaxNumberOfSteps(filter_flights, accum + 2, copy, origin);
- if (count > max_count) {
- max_count = count;
- }
- }
- ++i;
- }
- return max_count;
- }
- public static int calculate_max_air_time(ArrayList<Flight> flights){
- int max = 0;
- for(int i = 0; i < flights.size(); ++i) {
- if(flights.get(i).air_time > max) {
- max = flights.get(i).getAir_time();
- }
- }
- return max;
- }
- public static void main(String[] args)
- {
- ArrayList<Flight> flights = reader("C:\\Users\\Maria\\eclipse-workspace\\MyFirstProject\\flights.csv");
- int max_air_time = calculate_max_air_time(flights);
- FlightStopsCounter flightStopsCounter = new FlightStopsCounter(flights, max_air_time);
- flightStopsCounter.getMaxNumberOfSteps(flights,0, flights.get(0).getReal_time(), flights.get(0).getOrigin());
- System.out.println(flightStopsCounter.getMaxNumberOfSteps(flights,0, flights.get(0).getReal_time(), flights.get(0).getOrigin()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement