头条linux面试题必会题目,头条基础面试题1-9 - osc_pg5rp78i的个人空间 - OSCHINA - 中文开源技术交流社区...

代码题:1、2、5面值的零钱无限个,凑出n有多少种方案?

看了一眼,完全背包,准备写循环了。写了几行,感觉递归好写,换递归写。写了个有bug的如下,面试官说这样肯定不行,比较紧张,不自信,用了好长时间乱想,没继续改出bug,最后写了个暴力枚举。 1

2

3

4

5

6

7

8

int f(int n,int x)

{

if(n==0)return 1;

if(n<0)return 0;

if(x==1)return f(n-1,1);

if(x==2)return f(n-1,2)+f(n-2,2);

if(x==5)return f(n-1,5)+f(n-2,5)+f(n-5,5);

}

结束后,自己一写如下,明明是对的啊(逻辑思路对,先不写记忆化搜索),才想到面试时写了bug。后序听录音,是跟面试官互动太多,被面试官绕晕了,本来这样写逻辑是正确的,结果写的过程中面试官问x是什么意思,我说是最大用到几,x是5代表可以用125,x为2代表可以用12,x为1代表可以用1,面试官说5的情况包含了1的情况,所以肯定有重复呀,我一想确实是这个理,就没相信自己的做法,之后就越走越偏,迈向凉凉了。 1

2

3

4

5

6

7

8

int f(int n,int x)

{

if(n==0)return 1;

if(n<0)return 0;

if(x==1)return f(n-1,1);

if(x==2)return f(n-1,1)+f(n-2,2);

if(x==5)return f(n-1,1)+f(n-2,2)+f(n-5,5);

}

这道题从前到后花了33min,没搞出来,最后写了个暴力,完蛋。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值