<
回复: 9
收起左侧

Hedvig 1st Phone Interview

本楼:   👍  0
0%
0%
0   👎
全局:   155
97%
3%
4

2015(7-9月) 码农类General 硕士 全职@Hedvig - 内推 - 技术电面  | Other | 应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
1. Given integer n, find the number of different binary strings of size n where there are no consecutive 1's.Eg: If n is 2
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Product of Array Exclude Itself


上一篇:DrawBridge Technique interview
下一篇:Google/Youtube Onsite
stellari 2015-7-10 12:13:36 | 显示全部楼层
本楼:   👍  1
100%
0%
0   👎
全局:   533
99%
1%
5
假设f(n, k)是第n位上为k的数字的个数

无论第n-1位是0还是1,第n位都能取0,故有:
f(n, 0) = f(n-1, 0) + f(n-1, 1)

而只有在第n-1位取0时,第n位才能取1,即:
f(n, 1) = f(n-1, 0)

n位bit能表示的数目总和是:
f(n) = f(n, 0) + f(n, 1) = [f(n-1, 0) + f(n-1, 1)] + f(n-1, 0) = f(n-1) + [f(n-2, 0) + f(n-2, 1)] = f(n-1) + f(n-2)

所以,f(n)就是一个Fibonacci数。简单迭代即可得到。
回复

使用道具 举报

readman 2015-7-10 10:04:08 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   550
91%
9%
55
第一题是数学题吧....有什么好思路么
回复

使用道具 举报

readman 2015-7-10 10:04:43 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   550
91%
9%
55
全部 - 连续的?
回复

使用道具 举报

readman 2015-7-10 10:35:21 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   550
91%
9%
55
public int find(int n) {
        return (int)Math.pow(2,n) - (n-1)*(n) / 2;
    }
回复

使用道具 举报

stellari 2015-7-10 12:15:21 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   533
99%
1%
5
readman 发表于 2015-7-10 10:35
public int find(int n) {
        return (int)Math.pow(2,n) - (n-1)*(n) / 2;
    }

这个方法不行的。比如当n = 4时,总共有
0000
0001
0010
0100
1000
0101
1010
1001
8种情况。

而这个代码给出的结果则是2^4 - 3*4/2 = 16 - 6 = 10
回复

使用道具 举报

 楼主| anonym 2015-7-10 12:23:53 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   155
97%
3%
4
stellari 发表于 2015-7-9 23:13
假设f(n, k)是第n位上为k的数字的个数

无论第n-1位是0还是1,第n位都能取0,故有:

赞!我没发现是Fibonacci
回复

使用道具 举报

readman 2015-7-10 12:53:55 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   550
91%
9%
55
stellari 发表于 2015-7-10 12:15
这个方法不行的。比如当n = 4时,总共有
0000
0001

恩,            
回复

使用道具 举报

mint0715 2015-7-11 09:25:39 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   200
99%
1%
2
stellari 发表于 2015-7-10 12:13
假设f(n, k)是第n位上为k的数字的个数

无论第n-1位是0还是1,第n位都能取0,故有:

机智!

简单说来就是,已经有n-1长度,往后加个0,可以随便加。
往后加个1的话,必须最后一位是0,而末尾为0的数,是在再前一轮随便+0产生的,所以是f(n-2).
f(n) = f(n-1) + f(n-2)
回复

使用道具 举报

子弋 2015-10-2 06:39:15 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   112
100%
0%
0
楼主多久会有消息?
回复

使用道具 举报

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

本版积分规则

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