前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >脚撕LeetCode(1217)Easy

脚撕LeetCode(1217)Easy

作者头像
JathonKatu
发布2022-01-18 08:06:49
1560
发布2022-01-18 08:06:49
举报
文章被收录于专栏:JathonKatu

题目地址:https://leetcode-cn.com/problems/minimum-cost-to-move-chips-to-the-same-position/

数轴上放置了一些筹码,每个筹码的位置存在数组chips当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。 https://leetcode-cn.com/problems/minimum-cost-to-move-chips-to-the-same-position/

代码语言:javascript
复制
示例 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

https://leetcode-cn.com/problems/minimum-cost-to-move-chips-to-the-same-position/

这道题主要思路是,数组chips[i]存放的是硬币在坐标上的哪个位置。

此时只需要把所有硬币移动到任意一个坐标上即可,移动2位消耗0,移动1位消耗1.那么很容易就引出我们的爆破法

一、爆破法

这里我们直到移动奇数位就要消耗1,移动、偶数位就要消耗0,那么很明显就是看看是奇数位上的硬币个数多还是偶数位置上的硬币个数多,然后移动个数少的去消耗1即可。

执行结果如下:

51 / 51 个通过测试用例

状态:通过

执行用时: 0 ms

内存消耗: 35.7 MB

代码语言:javascript
复制
public int minCostToMoveChips(int[] chips) {
    int singleNum = 0;
    int doubleNum = 0;
    for(int chip : chips) {
        if((chip&1) == 0) doubleNum++;
        else singleNum++;
    }
    return Math.min(singleNum, doubleNum);
}

这道题评论区里面的答案基本也类似,而且这个答案得到了100%的时间和90+%的空间,也就没有比较深究,毕竟是一道easy题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JathonKatu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档