2023-09-26|閱讀時間 ‧ 約 21 分鐘

1217. Minimum Cost to Move Chips to The Same Position (玩籌碼)


英文版點我中文版點我


↑看個小廣告,支持好內容↑


從規則可知,金幣可以任意地連動兩步,只有移動一步時要花費。有沒有嗅到一種分奇、偶數的直覺 ......


Greedy

既然奇數位置之間可任意移動,偶數位置也是,我們可以把金幣直接分成兩堆:

// position=[2,100,7,3,4]

奇數堆:7 移到 3 (3,7)
偶數堆:4,100 移到 2 (2,4,100)


再將數量少的那堆移到另一堆就完成了,以上圖為例,花費為 min(3,2)=3

參考程式碼:

var minCostToMoveChips = function(position) {
let all = position.length;
let odd = position.filter(x => x%2).length;
return Math.min(odd, all-odd);  
};



  • 本題分類標籤:ArrayMathGreedy
  • 本題正解率=71.8%

❤️ 若內容對你實用,歡迎追蹤本專題,或小額贊助支持~
⭐ 這是我的第 2 篇刷題筆記,完整解題索引看這裡 → Here

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.