5213 玩筹码 leetcode

简介: 5213 玩筹码 leetcode

数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。


你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):


将第 i 个筹码向左或者右移动 2 个单位,代价为 0。

将第 i 个筹码向左或者右移动 1 个单位,代价为 1。

最开始的时候,同一位置上也可能放着两个或者更多的筹码。


返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。



示例 1:


输入:chips = [1,2,3]

输出:1

解释:第二个筹码移动到位置三的代价是 1,第一个筹码移动到位置三的代价是 0,总代价为 1。

示例 2:


输入:chips = [2,2,2,3,3]

输出:2

解释:第四和第五个筹码移动到位置二的代价都是 1,所以最小总代价为 2。


提示:


1 <= chips.length <= 100

1 <= chips[i] <= 10^9


```cpp

class Solution {

public:

   int minCostToMoveChips(vector<int>& chips) {

       int d=0,s=0;

       for(int i=0;i<chips.size();i++)

       {     int p=chips[i];

              if(p%2)

                  d++;

              else

                  s++;

       }

       return min(d,s);

   }

};

```

提示:题意重点《 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。

将第 i 个筹码向左或者右移动 1 个单位,代价为 1 》

可以把他们分为奇数与偶数,奇数类或者偶数类内部之间互相移动不会消耗,我们就可以把问题分解为求 min(奇数,偶数),小的移到大的上就够了

目录
相关文章
|
3月前
leetcode-1518:换酒问题
leetcode-1518:换酒问题
27 0
|
3月前
|
算法
leetcode:389. 找不同
leetcode:389. 找不同
21 0
|
3月前
leetcode-827:最大人工岛
leetcode-827:最大人工岛
42 0
|
3月前
leetcode-475:供暖器
leetcode-475:供暖器
32 0
|
3月前
|
消息中间件 Kubernetes NoSQL
LeetCode 3、28、1351
LeetCode 3、28、1351
|
算法 Python
LeetCode 386. Lexicographical Numbers
给定一个整数 n, 返回从 1 到 n 的字典顺序。
70 0
LeetCode 386. Lexicographical Numbers
leetcode第34题
从左向右遍历,一旦出现等于 target 的值就结束,保存当前下标。如果从左到右没有找到 target,那么就直接返回 [ -1 , -1 ] 就可以了,因为从左到右没找到,那么从右到左也一定不会找到的。如果找到了,然后再从右到左遍历,一旦出现等于 target 的值就结束,保存当前下标。 时间复杂度是 O(n)并不满足题意,但可以了解下这个思路,从左到右,从右到左之前也遇到过。
leetcode第34题
leetcode第37题
从上到下,从左到右遍历每个空位置。在第一个位置,随便填一个可以填的数字,再在第二个位置填一个可以填的数字,一直执行下去直到最后一个位置。期间如果出现没有数字可以填的话,就回退到上一个位置,换一下数字,再向后进行下去。
leetcode第37题
|
存储
leetcode第52题
可以发现对于同一条副对角线,row + col 的值是相等的。 对于同一条主对角线,row - col 的值是相等的。 我们同样可以用一个 bool 型数组,来保存当前对角线是否有元素,把它们相加相减的值作为下标。 对于 row - col ,由于出现了负数,所以可以加 1 个 n,由 [ - 3, 3 ] 转换为 [ 1 , 7 ] 。
leetcode第52题