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

Google Internship电面

🔗
2008 2016-12-15 13:16:24 | 只看该作者
全局:
第二轮楼主的做法,那个预处理,并不是针对特定K长度,而是用于计算各种长度都可以,这样over kill了吧?
好像人问的是对特定K啊。

愚兄提供一个思路:
两个数组,长度为K
H1[k]=(a1*a2*ak, ...,ak-1*ak, ak) //从第K个数往前反算
H2[k]=(ak+1, ak+1*ak+2, ...., ak+1*ak+2*....ak) //从第K+1个数往后算
这两个数组算完,复杂度是2K,
B[0]=H1[0],
B[2k-1]=h2[k-1];
然后,
B[2]=H1[1]*H2[0]
....
这个复杂度还是K

这样算了长度为2K的数组复杂度是K,
剩下部分,移动K,同样处理,
这个复杂度是O(n)的

代码比较蛋疼就不写了。



回复

使用道具 举报

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

本版积分规则

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