九章算法 | Google 面試題:Take Coins

撰文 | JZ 專欄 | 九章算法 題目描述 有n個硬幣排成一排,每次要你從最左邊或者最右側拿出一個硬幣。總共拿k次。寫一個算法,使能拿到的硬幣的和最大。 思路點撥 將list的前綴和求出來,然後依次枚舉右邊取x個,那麼剩下就是左邊去k - x個,用前綴和可以O(1)算出答案,所以整體複雜度爲O(n)。 考點分析 想清楚後可以發現不管每次從左邊還是右邊拿,最後從左邊拿的個數和從右邊拿的個數是確定的
相關文章
相關標籤/搜索