zoukankan      html  css  js  c++  java
  • 【leetcode】1217. Play with Chips

    题目如下:

    There are some chips, and the i-th chip is at position chips[i].

    You can perform any of the two following types of moves any number of times (possibly zero) on any chip:

    • Move the i-th chip by 2 units to the left or to the right with a cost of 0.
    • Move the i-th chip by 1 unit to the left or to the right with a cost of 1.

    There can be two or more chips at the same position initially.

    Return the minimum cost needed to move all the chips to the same position (any position).

    Example 1:

    Input: chips = [1,2,3]
    Output: 1
    Explanation: Second chip will be moved to positon 3 with cost 1. First chip will be moved to position 3 with cost 0. 
    Total cost is 1.

    Example 2:

    Input: chips = [2,2,2,3,3]
    Output: 2
    Explanation: Both fourth and fifth chip will be moved to position two with cost 1. Total minimum cost will be 2.

    Constraints:

    • 1 <= chips.length <= 100
    • 1 <= chips[i] <= 10^9

    解题思路:最终所有的chips处于的位置要么是偶数位要是是奇数位:如果是偶数位,那么初始就处于偶数位chips移动到最终位置不需要任何cost,而初始处于奇数位的chips移动到最近的偶数位只需要1个cost;反之如果最终位置是奇数位也是一样的。所以答案就是初始处于奇数位的chips和除数处于偶数位的chips的数量的较小值。

    代码如下:

    class Solution(object):
        def minCostToMoveChips(self, chips):
            """
            :type chips: List[int]
            :rtype: int
            """
            odd = 0
            even = 0
            for i in chips:
                if i % 2 == 1:
                    odd += 1
                else: even += 1
            return min(odd,even)
  • 相关阅读:
    SPU和SKU有什么区别
    Mave手动安装jar包
    maven国内镜像(国内oschina的maven服务器关了)
    用java代码将从数据库中取出的具有父子关系的数据转成json格式
    Oracle中的decode()函数
    Oracle中的instr()函数
    Oracle的nvl
    Oracle保留小数点后两位的几种方法
    【Python】djangorestframework 基于django框架的接口开发
    【MySQL】 GTID使用
  • 原文地址:https://www.cnblogs.com/seyjs/p/11646372.html
Copyright © 2011-2022 走看看