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

2023/09/26閱讀時間約 1 分鐘


英文版點我中文版點我


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


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


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

54會員
57內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
留言0
查看全部
發表第一個留言支持創作者!