LeetCode.1217-交换芯片(Play with Chips)

这是小川的第421次更新,第454篇原创

看题和准备

今天介绍的是LeetCode算法题中Easy级别的第270题(顺位题号是1217)。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

中文翻译

有一些芯片,第i个芯片位于位置chips[i]

你可以在任何芯片上多次执行以下两种类型的任何一种移动(也可能为零次):

  • 将第i个芯片向左或向右移动2个单位,成本为0。
  • 将第i个芯片向左或向右移动1个单位,成本为1。

最初时,在同一位置可以有两个或多个芯片。返回将所有芯片移至同一位置(任何位置)所需的最低成本。

例如:

输入:chips = [1,2,3]
输出:1
说明:第二个芯片将以成本1移至位置3。第一个芯片将以成本0移至位置3。总成本为1。

输入:chips = [2,2,2,3,3]
输出:2
说明:第四和第五芯片都将移动到成本为1的位置2。最低总成本为2。

限制条件

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

第一种解法

一开始看题目,看的我一脸懵逼,这是个神马题目介绍?

开始认为是移动元素到固定的一个索引位置上,计算移动的最小成本,给的例子倒也能解释,但是在试了其他几组数据后,比如数组{1,3,5},结果是0,与我设想的结果1对不上,思路是错的,肯定是理解错了题目的意思。没办法,只能继续理解题意和用随机数组验证思路了。在明白题目究竟想要我们做啥后,只想来一句,我服了you!

回归正题,我们一起来看看这个题目的真面目。如果将题目中positon字眼,换成value,你就会很快明白题目在讲什么了。

给了一个数组,其中元素都是大于等于1的正整数,可以对数组中的任意元素进行两种操作:将元素值加2或减2,成本为0;将元素值加1或减1,成本为1。这两种操作都可以进行多次,现在要将数组中的元素值全部变为一个值,请问最低的成本是多少?

结合题目中的第二个例子来看,[2,2,2,3,3],有3个2,2个3,有两种办法,可以将这5个数统一,第一是3个2都变3,成本是3;第二个办法是2个3都变为2,成本是2,所以最小成本是2,也就是将2个3变为2。再来一个,比如[1,3,5],将3减去2变为1,成本为0,将5减两次2,也变为1,成本为0,最后总成本是0。

所以,这个问题本质上是计算数组中奇数和偶数的个数。

  • 如果数组元素全部为偶数,全变成2,成本为0。
  • 如果数组元素全部为奇数,全变成1,成本为0。
  • 如果奇数元素个数大于偶数元素个数,将偶数元素加1全变为奇数,成本是偶数元素的个数。
  • 如果奇数元素个数小于偶数元素个数,将奇数元素加1全变为偶数,成本是奇数元素的个数。
public int minCostToMoveChips(int[] chips) {
    int even = 0, odd = 0;
    for (int chip : chips) {
        if (chip%2 == 0) {
            even++; //偶数元素个数
        } else {
            odd++; //奇数元素个数
        }
    }
    return odd > even ? even : odd;
}


小结

算法专题目前已更新LeetCode算法题文章276+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、在看就是对我最大的回报和支持!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 一段时间以来确实忙了点,84天的陪伴中成长,没能做完,故此,成长记录半路停止了,小小遗憾。但我尽可能的发现欢儿的点...
    欢欢乐乐1317阅读 361评论 0 0
  • 远远看见母亲在大毒太阳下老老实实又张望不安地站着,一下子就热了眼。 母亲自己坐车从城北到城南来看她病重的侄女,却忘...
    铭玥咏全阅读 206评论 0 1
  • 人的高贵就在于知道自己的灵魂需要什么,并愿意为此而献身…… ……
    方爱民阅读 137评论 0 0