package com.interview.flag.f; import java.util.HashMap; /** * Created_By: stefanie * Date: 15-1-30 * Time: 下午10:36 */ public class F17_TaskScheduler { public int totalTime(String task, int cooldown){ HashMap<Character, Integer> earliestTime = new HashMap(); int scheduledIdx = -1; for(int i = 0; i < task.length(); i++){ char ch = task.charAt(i); //check how to schedule task[i] int earliest = earliestTime.containsKey(ch)? earliestTime.get(ch) : 0; if(earliest > scheduledIdx) scheduledIdx = earliest; //no earlier than earliest else scheduledIdx++; //update the earliest time of next task same as task[i] earliestTime.put(ch, scheduledIdx + cooldown + 1); } return scheduledIdx + 1; } public static void main(String[] args){ F17_TaskScheduler scheduler = new F17_TaskScheduler(); System.out.println(scheduler.totalTime("AABABCD", 2)); //10 } }