📣 独立日限时特惠: VIP通行证立减$68
楼主: gigimei
跳转到指定楼层
上一主题 下一主题
收起左侧

Facebook 电面

🔗
freemail165 2016-3-28 06:45:59 | 只看该作者
全局:
public int Cooldown(String input,int N) {
    int extra=0;
    Map<Character,Integer> map=new HashMap<>();
   for(int i=0;i<input.length();i++) {
          char cur=input.charAt(i);
          while(map.containsKey(cur) && map.get(cur)>=i+extra-N) {
                    extra++;
          }
          map.put(cur,i+extra-1);
   }
   return input.length()+extra;
}
回复

使用道具 举报

🔗
ericLaw 2016-3-28 10:38:14 | 只看该作者
全局:
freemail165 发表于 2016-3-28 06:45
public int Cooldown(String input,int N) {
    int extra=0;
    Map map=new HashMap();

中间的while loop没有必要,会增加消耗。
回复

使用道具 举报

🔗
freemail165 2016-3-28 10:43:55 | 只看该作者
全局:
ericLaw 发表于 2016-3-28 10:38
中间的while loop没有必要,会增加消耗。

真的吗?
那相应逻辑怎么处理呢
回复

使用道具 举报

🔗
ericLaw 2016-3-28 11:17:41 | 只看该作者
全局:
freemail165 发表于 2016-3-28 10:43
真的吗?
那相应逻辑怎么处理呢

直接差值加上去,不要用while loop来加。这样加如果cooldown时间很大会超时的。
回复

使用道具 举报

🔗
freemail165 2016-3-28 11:22:36 | 只看该作者
全局:
ericLaw 发表于 2016-3-28 11:17
直接差值加上去,不要用while loop来加。这样加如果cooldown时间很大会超时的。

还真是,谢谢提醒
回复

使用道具 举报

🔗
shepherd001 2016-3-30 03:53:35 | 只看该作者
全局:
freemail165 发表于 2016-3-28 06:45
public int Cooldown(String input,int N) {
    int extra=0;
    Map map=new HashMap();

不太理解这道题。
难道不是简单的linear过去,判断当前task是否和前一个一样,一样的话直接加N?
是不是这道题我理解有问题。
为什么需要这个while:
while(map.containsKey(cur) && map.get(cur)>=i+extra-N) {extra++;}
谢谢!
回复

使用道具 举报

🔗
freemail165 2016-3-30 09:52:32 | 只看该作者
全局:
shepherd001 发表于 2016-3-30 03:53
不太理解这道题。
难道不是简单的linear过去,判断当前task是否和前一个一样,一样的话直接加N?
是不 ...

如果是ABCDE*A的情况,你觉得需要加N吗?
回复

使用道具 举报

🔗
shepherd001 2016-3-31 01:53:49 | 只看该作者
全局:
freemail165 发表于 2016-3-30 09:52
如果是ABCDE*A的情况,你觉得需要加N吗?

按照我的理解不需要啊,这里面你的*表示什么意思?任意task?
我知道我对这道题的理解有点问题,所以想请你解释一下的,谢谢
回复

使用道具 举报

🔗
ericLaw 2016-3-31 05:47:05 | 只看该作者
全局:
shepherd001 发表于 2016-3-31 01:53
按照我的理解不需要啊,这里面你的*表示什么意思?任意task?
我知道我对这道题的理解有点问题,所以想 ...

这个N是指两个相同任务之间间隔的时间,也就是说可以进行其他任务,如果没有其他任务就只能停下来等。像cooldown =2 ABBA和AA都是要4天才能完成
回复

使用道具 举报

🔗
shepherd001 2016-3-31 06:00:22 | 只看该作者
全局:
ericLaw 发表于 2016-3-31 05:47
这个N是指两个相同任务之间间隔的时间,也就是说可以进行其他任务,如果没有其他任务就只能停下来等。像c ...

OK,那我觉得是题目本身描述的不是那么清楚,不过现在了解了,谢谢。
另外,cooldown=2的话,AA是2,那ABBA应该是6吧?两个B之间也应该有个cool down吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表