华为综合面试算法1题

关注B站可以观看更多实战教学视频:hallo128的个人空间

华为综合面试算法1题

问题:

有两个城市A与B,相距50 km,我们有100根胡萝卜希望由A地运送到B地;有1头小毛驴,每次最多可以承载50根胡萝卜,且其每行走1 km就要吃掉1根胡萝卜;请问最终可以运送到B地的胡萝卜个数最多为多少?

解答:

关键在于一次性毛驴只能带 50 根,所以毛驴必须返回,每次按最大载重 50 带。
(1)假设一公里就折返带,那么“来+回+来”,1 公里就得消耗 3 根胡萝卜。
(2)直到能一次性只剩<= 50 根,就不用折返,可以一口气到终点。

  • 计算不用折返时,走过的路程和消耗的胡萝卜。
    50/3 = 16.66,故当已经走了 17 公里,就只剩下(100-17*3)=49 根
  • 剩下的路程(50-17=33)一次性到终点,不用折返,1 公里消耗 1 根胡萝卜

答案

49-33 = 16
故最多可以运送 16 根胡萝卜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值