e****s 发帖数: 113 | 1 1. Tasks: AABABCD
Cooldown Time: 2
A__AB_ABCD
Output: 10
就是说同样类型的task之间至少要等2,每个task的执行时间是1
followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序
2. leetcode,three sum 不用sort 的n^2 代码
求教,有没有java 代码共享一下,打算学习一下。 |
e*******s 发帖数: 1979 | 2 1. HashMap last cool down?
A, 0
A, 0 + cooldown
B, 4
2. HashMap<> : keep 2 sum pairs, sum, them run again check.
【在 e****s 的大作中提到】 : 1. Tasks: AABABCD : Cooldown Time: 2 : A__AB_ABCD : Output: 10 : 就是说同样类型的task之间至少要等2,每个task的执行时间是1 : followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序 : 2. leetcode,three sum 不用sort 的n^2 代码 : 求教,有没有java 代码共享一下,打算学习一下。
|
b**a 发帖数: 1118 | 3 Do not really know how to do the follow up.
private static int CoolDown(string tasks, int coolDown)
{
if (tasks.Length == 0 || tasks == null)
return 0;
Hashtable map = new Hashtable();
int sum = tasks.Length;
int gap = 0;
for(int i = 0;i< tasks.Length; i++)
{
char c = tasks[i];
if(map.ContainsKey(c))
{
int distance = i - (int)map[c] + gap;
gap += coolDown - distance + 1;
if(distance<= coolDown)
{
sum += coolDown - distance + 1;
}
map[c] = i + gap; ;
}
else
{
map.Add(c, i+gap);
}
}
return sum;
}
【在 e****s 的大作中提到】 : 1. Tasks: AABABCD : Cooldown Time: 2 : A__AB_ABCD : Output: 10 : 就是说同样类型的task之间至少要等2,每个task的执行时间是1 : followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序 : 2. leetcode,three sum 不用sort 的n^2 代码 : 求教,有没有java 代码共享一下,打算学习一下。
|
c********t 发帖数: 5706 | 4 public static int cooldown(String s, int k){
if(s==null || s.isEmpty()) return 0;
int n = s.length();
if(k<=0) return n;
Map indexMap = new HashMap<>();
int inc=0;
for(int i=0; i
char ch = s.charAt(i);
int depart=i+inc-indexMap.getOrDefault(ch, -k-1);
if(depart<=k) inc+=k-depart+1;
indexMap.put(ch, i+inc);
}
return n+inc;
}
【在 e****s 的大作中提到】 : 1. Tasks: AABABCD : Cooldown Time: 2 : A__AB_ABCD : Output: 10 : 就是说同样类型的task之间至少要等2,每个task的执行时间是1 : followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序 : 2. leetcode,three sum 不用sort 的n^2 代码 : 求教,有没有java 代码共享一下,打算学习一下。
|
c********t 发帖数: 5706 | 5 2. How to handle duplicate then?
【在 e*******s 的大作中提到】 : 1. HashMap last cool down? : A, 0 : A, 0 + cooldown : B, 4 : 2. HashMap<> : keep 2 sum pairs, sum, them run again check.
|
c********t 发帖数: 5706 | 6 followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序
cooldown很大,没看出需要怎么修改啊。哪位大牛说说?
【在 e****s 的大作中提到】 : 1. Tasks: AABABCD : Cooldown Time: 2 : A__AB_ABCD : Output: 10 : 就是说同样类型的task之间至少要等2,每个task的执行时间是1 : followup: 如果cooldown是个参数,也就是说有可能会很长时间,怎么修改之前的程序 : 2. leetcode,three sum 不用sort 的n^2 代码 : 求教,有没有java 代码共享一下,打算学习一下。
|