这道题本应该很简单的但是我把他复杂化了,所以没有在第一时间里A出来。我们来看看题目

看上去是不是很复杂,思路是有,但是,很难实现。我最开始的时候是认为有三种情况,左边筹码最多,右边筹码最多,中间筹码最多。写了三组 for 循环。只过了70%的样例。这时候,我就意识到,我肯定想多了!当我重新思考这道问题的时候,我发现其实就只有两种情况:

   1、奇数点的筹码移动到偶数上,移动奇数次。

   2、偶数点的筹码移动到奇数上,移动偶数次。

为什么成立呢?因为我们规定了数轴为整数。所以我们选择的最终目的地不是奇数就是偶数。而且:

  设a属于奇数序列,那么必有 ai + 2*n = ai+n

同样的,

  若b属于偶数序列,那么必有 bi + 2*n = bi+n 

这样很明显的就可以看出,移动次数只和奇、偶数相关。而且无论如何移动我最少移动次数也应该是奇或偶数的个数。所以统计一下奇数偶数的个数即可得出答案。

  这道题比较简单,先自己写,再看代码。

 /**
* @brief 玩筹码
* @note 偷懒用了三目
* @param *chips: 数组
* @param chipsSize: 数组大小
* @author 杨文蓁的小迷弟
*/
int minCostToMoveChips(int *chips, int chipsSize)
{
int Odd = , Even = ; for (int i = ; i < chipsSize; i++)
{
if (chips[i] & )
{
Odd++;
}
else
{
Even++;
}
} return Odd > Even ? Even : Odd;
}

  周赛不易,诸君共勉!

l5213. 玩筹码的更多相关文章

  1. LeetCode1217 玩筹码(贪心)

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

  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. 一良心操盘手:我们是这样玩死散户的! z

    做庄必须考虑很多问题: 第一是证监会的监控.操控股票不能让他们抓住把柄,这时候就要考虑多户头,或者拉几个私募大户集体作战. 第二要考虑产业资本的问题.如果我们拉的时候,他们看到利润可观,结果大量抛出筹 ...

  5. 玩转spring boot——快速开始

    开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...

  6. [C#] 软硬结合第二篇——酷我音乐盒的逆天玩法

    1.灵感来源: LZ是纯宅男,一天从早上8:00起一直要呆在电脑旁到晚上12:00左右吧~平时也没人来闲聊几句,刷空间暑假也没啥动态,听音乐吧...~有些确实不好听,于是就不得不打断手头的工作去点击下 ...

  7. [C#] 了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数

    了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数 目录 简介 特点 方法的参数 方法的返回值 与批处理交互的一个示例 简介 我们知道,新建一个控制台应用程序的时候,IDE 会同时创建 ...

  8. 玩转spring boot——开篇

    很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我 ...

  9. 玩转spring boot——结合redis

    一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...

随机推荐

  1. redhat 7.6 查看硬件负载命令

    1.  命令 查看CPU负载 命令1:uptime 命令2:cat  /proc/loadavg 查看CPU信息:cat  /proc/cpuinfo load average:表示平均1分钟内运行的 ...

  2. How to recover if NMC cound not connect

    Some times we suddently find that the NMC can not login,. You would see the sybase database error if ...

  3. Django下关于session的使用

    一.Session的概念 cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据 session 的使用依赖 cookie:在使用Session后,会在Cookie中存储一 ...

  4. C/C++网络编程1——linux下实现

    网络编程就是编写程序使两台联网的计算机相互交换数据. 例子:服务器端开启一个socket,监听9999端口.客户端向服务器端发起请求,服务器端收到请求以后,给客户端发送一句:"hello w ...

  5. 本地jar在打包时打入到项目中去

    <dependency> <groupId>com.hxyc</groupId> <artifactId>hxyc-common</artifac ...

  6. monkey常见API及实例

    一.API简介 LaunchActivity(pkg_name, cl_name):启动应用的Activity.参数:包名和启动的Activity. Tap(x, y, tapDuration): 模 ...

  7. 【剑指Offer面试编程题】题目1512:用两个栈实现队列--九度OJ

    题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 输入: 每个输入文件包含一个测试样例. 对于每个测试样例,第一行输入一个n(1<=n<=1 ...

  8. VUE 使用axios请求第三方接口数据跨域问题解决

    VUE是基于node.js,所以解决跨域问题,设置一下反向代理即可. 我这里要调用的第三方接口地址为 http://v.juhe.cn/toutiao/index?type=top&key=1 ...

  9. 实训41 S7通信 单向连接 基于DP网络通信

    连接的基本概念? 连接是指两个通信伙伴之间执行通信服务建立的逻辑链路,而不是指两个站之间用物理媒体(例如电缆)实现的连接. 连接相当于 通信伙伴之间 一条虚拟的"专线". 一条物理 ...

  10. Largest Beautiful Number CodeForces - 946E (贪心)

    题意:给定一个长度为偶数的数,输出小于它的最大的美丽数.如果一个数长度为偶数,且没有前导零,并存在一种排列是回文数的数为美丽数.给定的t个数长度总和不超过200000. 分析: 1.存在一种排列为回文 ...