【题目】1217. 玩筹码

数轴上放置了一些筹码,每个筹码的位置存在数组 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

【解题思路1】求奇数/偶数的个数的最小值

奇数与奇数之间能无代价移动,偶数亦然,因此这道题就变成找数组中奇数和偶数的个数,返回小的那个;

如果最终位置是奇数位,那么所有已经在奇数位的筹码都可以移动2N次到这个位置,而且代价为0,偶数位同理。
所以确定板上哪种筹码(奇数位还是偶数位)的数量少,就以该筹码的位置类型为最终位置,同时,另外一种类型的筹码如果有N个,也只要花代价N就可以走到最终位置。

注:chips中的元素是位置,而不是i位置的个数,以下理解是不对的[1,2,2,2,2]表示第一个位置放1个,第二个位置放2个,第三个位置放2个

class Solution {public int minCostToMoveChips(int[] chips) {int odd = 0;int even = 0;for(int i : chips){if(i % 2 == 0){even++;}else{odd++;}}return Math.min(odd, even);}
}

leetcode 1217. 玩筹码相关推荐

  1. LeetCode 1217. 玩筹码(脑筋急转弯)

    1. 题目 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价 ...

  2. leetcode —— 1217. 玩筹码

    数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0. 将 ...

  3. LeetCode - 1217 - 玩筹码(play-with-chips)

    一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题 二 前言 难度:简单 涉及知识:贪心算法.数组.数学 题目地址:https://leetcode-cn.com/probl ...

  4. LeetCode——1217. 玩筹码

    题目描述: 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中. 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 方式一:将第 i 个筹码向左或者右移动 2 个单 ...

  5. 【LeetCode每日一题】——1217.玩筹码

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[时间频度] 九[代码实现] 十[提交结果] 一[题目类别] 贪心算法 二[ ...

  6. LeetCode之玩筹码

    题目:玩筹码 思路: 算出在偶数根棍子上的筹码数, 奇数根棍子上的筹码数 :二者中的最小值就是结果. 因为我们可以通过0代价把所有筹码都移动到两根棍子上,然后把其中一根棍子上筹码较少的筹码通过1代价一 ...

  7. leetcode 1217. Minimum Cost to Move Chips to The Same Position | 1217. 玩筹码(Java)

    题目 题解 所有的 chips,要么在奇数位置,要么在偶数位置 class Solution {public int minCostToMoveChips(int[] position) {int p ...

  8. 力扣1217. 玩筹码

    题目 有 n 个筹码.第 i 个筹码的位置是 position[i] . 我们需要把所有筹码移到同一个位置.在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为: positio ...

  9. Leecode 刷题记录 1217 玩筹码

    文章目录 topic answer topic 有 n 个筹码.第 i 个芯片的位置是 position[i] . 我们需要把所有筹码移到同一个位置.在一步中,我们可以将第 i 个芯片的位置从 pos ...

最新文章

  1. Kinect SDK V1.7 开发工具包概览
  2. com编程创建快捷方式中文_如何以编程方式为博客创建wordcloud?
  3. LightOJ - 1245 Harmonic Number (II) 求同值区间的和
  4. Docker启动Mysql容器失败,挂载时权限不足,chown: changing ownership of ‘/var/lib/mysql/‘: Permission denied
  5. Android学习笔记(十一)——将Fragment添加到Activity中以及参数传递
  6. android---手电筒之摩尔斯电码
  7. 叫板苹果谷歌,微软将开发者应用分成上调至 95%
  8. 安装配置管理 之 安装和配置 JPackage Java
  9. 矩阵分解程序及报告:LU分解、QR分解、Householder变换、Givens变换、URV分解
  10. Java项目集成永中文档在线预览
  11. 使用arduino作为programer对新的mcu烧录bootloader
  12. 主动降噪技术matlab,主动降噪技术(ANC)的前生今世--原理仿真
  13. linux怎么用水星无线,用手机设置水星路由器步骤_手机设置mercury无线路由器-192路由网...
  14. PLATO上线LAAS协议Elephant Swap,用户可借此获得溢价收益
  15. 24个扁平风格图标的PSD格式免费下载
  16. 寒门难出贵子,AI助力教育但问题依然难解
  17. MPB:中农冯固组-​利用13C-DNA-SIP法示踪根际和菌丝际活性解磷细菌
  18. linux下编辑VI窗口插入与编辑命令
  19. FPGA黑金开发板第一帖
  20. color = { 国内新闻: ['#D8B221', '#EFE0A6'], 武汉交通: ['#E25E5B', '#E6B2B1']}

热门文章

  1. ccf试题棋局评估c语言,第十三次CCF CSP认证(2018年3月)真题棋局评估 题解
  2. 解决nrm ls命令没有*(星号)的问题
  3. 图元变形lisp源码_修改图元图层lisp
  4. 百度霸屏引流推广需要多少钱?那么才能霸屏?百度霸屏有什么好处?
  5. OpenCV各版本差异
  6. python -i 豆瓣源
  7. createjs图片不清晰的坑
  8. Mac远程连接Windows桌面的软件推荐
  9. AR珠宝试戴经典案例盘点
  10. JS基础 将字符串数组用|或其他符号分割