美团2017校招笔试--取红包问题 - u010665065的博客 - 博客频道 - CSDN.NET
由题目可知,红包围成一圈,由于不能拿相邻的红包,故可知只能隔1个,隔2个红包就取一个(为什么不能隔3个,4个,5个……呢?因为题目说是要取得最多的总金额,隔3,4,5个取,那么就可以分解成隔1个,隔2个取,以获得更多的总金额)。若是用数组表示,则首尾相连,那么红包arr[n]和arr[0]不能同时取得,故会分成两个步骤进行处理,arr[0],.....,arr[n-2]和arr[1],......,arr[n-1],分别取得这两部分的最多红包金额,然后返回两者之间最大值。Read full article from 美团2017校招笔试--取红包问题 - u010665065的博客 - 博客频道 - CSDN.NET
No comments:
Post a Comment