楼主: hzyslddm
跳转到指定楼层
上一主题 下一主题
收起左侧

google onsite 2/29

🔗
 楼主| hzyslddm 2016-3-5 06:51:52 | 只看该作者
全局:
say543 发表于 2016-3-4 15:50
不知道有没有离解错题目意思? 第一步先枚举所有的substrings o(n^3) 第二步根据长度分类每一个长度里面分 ...

感觉也是可行的
回复

使用道具 举报

🔗
yang841841 2016-3-6 03:41:17 | 只看该作者
全局:
hzyslddm 发表于 2016-3-2 01:45
就是这个讨论了半天,我提出的几种方案都不是特别好,姐姐不满意,最后也没说该怎么做比较好

找hashcode这题,直接把“A,B”的hashcode()和“B,A”的hashcode()加起来作为这组边的hashcode可以吗?
回复

使用道具 举报

🔗
qiuxuxing007 2016-3-7 10:30:13 | 只看该作者
全局:
解决方法是hashmap里面不存字符的occurance,而是存字符最后出现的位置。返回值是substring的start index和end index
这种方法不懂 ,求解释,最好给个例子
回复

使用道具 举报

🔗
qiuxuxing007 2016-3-7 12:02:52 | 只看该作者
全局:
Czon 发表于 2016-3-2 01:26
楼主麻烦问一下第二题存了index以后怎么处理

我也在想这个问题
回复

使用道具 举报

🔗
 楼主| hzyslddm 2016-3-8 01:41:46 | 只看该作者
全局:
qiuxuxing007 发表于 2016-3-7 10:30
解决方法是hashmap里面不存字符的occurance,而是存字符最后出现的位置。返回值是substring的start index和e ...

hashmap里存 字符 - 该字符最后出现的位置,那么一旦遇到新字符导致超出最多K个不同字符的限制时,start index就是之前记录的值,end index为当前index-1, 然后找到hashmap里面value最小的key(也就是最后出现位置最靠前的字符), 把start index设为该value+1 (也就是移掉了一个字符的出现),并把这对key-value pair从hashmap里删除
比如aabaacaab, k为2。那么在遇到c的时候,a最后出现的index是4,b最后出现的index是2,那么通过把start index设为3以及把(b,2)这个pair从map中移除,把map中不同字符的个数减小到了1,就可以新加不同字符了
回复

使用道具 举报

🔗
qiuxuxing007 2016-3-8 03:46:59 | 只看该作者
全局:
我理解你的意思了, 这种算法很精巧, 点赞, 但是还是不能处理string很长很长,而且只给一个iterator,每次调用给一个字符的问题啊?(因为这种方法本质上跟hashmap加two pointer的方法原理是一致的)我觉得follow up其实是没有code 的,我觉得应该用divide and conquer来做, 把string分段来看看每段的情况, 看看每段 substring的distribution 和稀疏情况, 你觉得呢?
回复

使用道具 举报

🔗
 楼主| hzyslddm 2016-3-8 05:53:47 | 只看该作者
全局:
qiuxuxing007 发表于 2016-3-8 03:46
我理解你的意思了, 这种算法很精巧, 点赞, 但是还是不能处理string很长很长,而且只给一个iterator,每次 ...

可是follow up要改写之前写的code。string很长很长可以处理呀,只要记录字符出现的index就好了(加个变量计数),方法的本质没有变化,只是可以处理每次给一个字符的情况。divide&conquer不是特别好做吧,一次给一个字符的话,要怎么divide呢?调用很多次,处理一下这段,再调用很多次,处理下一段,再合并?
回复

使用道具 举报

🔗
cx101220012 2016-3-13 09:39:24 | 只看该作者
全局:
csgtc 发表于 2016-3-2 15:14
如果是任意character也是256*n^3,比n^4好啊。。

那为啥不直接用lz的dp思路加上个hashset(hashmap)求那个以i结尾的substring的时候 在hahsset 走之前的就可以了,复杂度就变成了256*n^2了

补充内容 (2016-3-13 09:39):
在hashset里头搜索
回复

使用道具 举报

🔗
cx101220012 2016-3-13 09:40:20 | 只看该作者
全局:
cx00001 发表于 2016-3-13 09:39
那为啥不直接用lz的dp思路加上个hashset(hashmap)求那个以i结尾的substring的时候 在hahsset 走之前的 ...

然后把这些以i结尾的substring加入到hashset里头

补充内容 (2016-3-13 09:40):
回复

使用道具 举报

🔗
liliphy 2016-3-20 06:57:53 | 只看该作者
全局:
请问楼主有结果了吗
回复

使用道具 举报

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

本版积分规则

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