自学内容网 自学内容网

华为综合面试算法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 根胡萝卜


原文地址:https://blog.csdn.net/weixin_43633501/article/details/142580045

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!