https://leetcode.com/problems/minimum-cost-to-move-chips-to-the-same-position/ | Easy |
---|
Дан массив position
, где position[i]
— позиция i
-го жетона. За один ход можно:
• Переместить жетон на 2 позиции (бесплатно).
• Переместить жетон на 1 позицию (за 1 единицу стоимости).Нужно найти минимальную стоимость, чтобы все жетоны оказались в одной позиции.
Input:
[1, 2, 3]Output:
1Explanation:
Первый шаг: переместить жетон с позиции 3 на позицию 1 (стоимость = 0). Второй шаг: переместить жетон с позиции 2 на позицию 1 (стоимость = 1). Общая стоимость — 1.
Input:
[2, 2, 2, 3, 3]Output:
2Explanation:
Можно переместить два жетона с позиции 3 на позицию 2. Каждое перемещение стоит 1. Общая стоимость — 2.
Input:
[1, 1000000000]Output:
1
fun minCostToMoveChips(position: IntArray): Int {
var even = 0
var odd = 0
for (pos in position) {
if (pos % 2 == 0) even++ else odd++
}
return minOf(even, odd)
}
O(n), где n
— длина массива position
.
O(1), так как используется только два счётчика.