题目:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/play-with-chips

思路:

贪心:奇数位置与奇数位置之间,都可以通过偶数步到达,也就是可以2步2步的移动过去,花费为0。偶数位置与偶数位置也是同样的道理,所以将所有不同偶数(奇数)位置的筹码移动到同一个位置上的最小花费为0,移动后的结果最终只剩下两堆,一堆位于奇数位置,一堆位于偶数位置。然后再将移动后处于两个不同位置上的筹码移动到同一个位置上,移动一个的最小代价为1,所以最终的答案就是处于奇数位置上和偶数位置上筹码个数的最小数。

代码:

import java.util.*;
import java.math.*; class Solution {
public int minCostToMoveChips(int[] chips) {
int length = chips.length;
int even = 0, odd = 0;
for(int i=0; i<length; i++){
if(chips[i] % 2 == 0) even++;
if(chips[i] % 2 == 1) odd++;
}
return Math.min(even, odd);
}
} public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
Solution solution = new Solution();
int n = scanner.nextInt();
int[] chips = new int[n];
for(int i=0; i<n; i++){
chips[i] = scanner.nextInt();
}
System.out.println(solution.minCostToMoveChips(chips));
}
}

LeetCode1217 玩筹码(贪心)的更多相关文章

  1. l5213. 玩筹码

    这道题本应该很简单的但是我把他复杂化了,所以没有在第一时间里A出来.我们来看看题目 看上去是不是很复杂,思路是有,但是,很难实现.我最开始的时候是认为有三种情况,左边筹码最多,右边筹码最多,中间筹码最 ...

  2. Leetcode题解 - 贪心算法部分简单题目代码+思路(860、944、1005、1029、1046、1217、1221)

    leetcode真的是一个学习阅读理解的好地方 860. 柠檬水找零 """ 因为用户支付的只会有5.10.20 对于10元的用户必须找一个5 对于20元的用户可以找(三 ...

  3. leetcode 0211

    目录 ✅ 1217. 玩筹码 描述 解答 c java py ✅ 206. 反转链表 描述 解答 c java py ✅ 922. 按奇偶排序数组 II 描述 解答 c 双指针soldier tddo ...

  4. SCUT - 131 - 小P玩游戏II - 贪心 - 平衡树

    https://scut.online/p/131 首先假如钦定了一群人去打怪兽,那么可以把主要的任务都丢给b最大的人去打,这样不会更差.然后考虑枚举这个b最大的人,其他人陪练.一开始就是ai+k*b ...

  5. BZOJ1029: [JSOI2007]建筑抢修[模拟 贪心 优先队列]

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MBSubmit: 3785  Solved: 1747[Submit][Statu ...

  6. 【BZOJ-2460&3105】元素&新Nim游戏 动态维护线性基 + 贪心

    3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 839  Solved: 490[Submit][Stat ...

  7. BZOJ 1029 建筑抢修 贪心+堆

    又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ...

  8. NOI题库刷题日志 (贪心篇题解)

    这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制:  1000ms  内存限制:  65536kB 描述 在一个平面上,如果有两个点( ...

  9. CF735C 数论\平衡树叶子节点的最大深度\贪心\斐波那契\条件归一化

    http://codeforces.com/problemset/problem/735/C 题意..采用淘汰赛制..只要打输就退出比赛..而且只有两个选手打过的场数 相差不超过1才能比赛..最后问你 ...

随机推荐

  1. c++子类父类关系(翁恺c++公开课[15-16]学习笔记)

    关于类的继承有三种:public继承.private继承.protected继承 首先说明,关于类的成员变量.函数的权限有三种(public.private.protected) 我们通常会让所有的成 ...

  2. LinearLayout属性android:orientation

    Android布局LinearLayout注意设置属性android:orientation属性,否则有的组件可能无法显示. 该属性不设置时默认为horizontal.此时第一个控件的宽度若设置成“f ...

  3. JQuery - $(this) 加 siblings() 的使用

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  4. 在Centos下单机部署kubernetes

    官方安装手册 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ ...

  5. 去除input边框 input去除边框 去除input获取焦点时的蓝色外边框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. zabbix监控 -mysql数据库

    1.禁用安装防护[root@mysql213 ~]# vi /etc/selinux/config #关闭安装 SELINUX=disabled 2.授权zabbix监控账号 mysql -uroot ...

  7. Python print()函数

    #输出单个数据,会自动输出回车换行 print(1) print(2) #输出 1 2 #输出换行 print('\n') #防止换行 for x in range(0, 5): print(x, e ...

  8. CNN反向传播算法公式

    网络结构(6c-2s-12c-2s): 初始化: \begin{align}\notag W \sim U(- \frac{\sqrt{6}}{\sqrt{n_j+n_{j+1}}} , \frac{ ...

  9. 新闻网大数据实时分析可视化系统项目——13、Cloudera HUE大数据可视化分析

    1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python ...

  10. 中国6G为什么要从现在上路?

    现在,通信5G的概念早已深入人心,正在从蓝图上的规划走向现实,平心而论,中国在2G/3G/4G时代都没有太突出的表现,或受制于人.或沦为跟随者,如今中国想翻身,于是从一开始就卯足了劲儿抢跑5G,不仅把 ...