当前位置:网站首页>leetcode-每日一题1217. 玩筹码(贪心+位运算)
leetcode-每日一题1217. 玩筹码(贪心+位运算)
2022-07-31 05:10:00 【lin钟一】

题目链接:https://leetcode.cn/problems/minimum-cost-to-move-chips-to-the-same-position/
思路
直接想法
这题要求得到移动到同一格子的最小成本,跳两格的成本是0,跳一格的成本是1,所以我们需要尽量跳两格,发现刚好可以分成下标奇偶两列的棋子,可以把奇偶两列的棋子都移动到相邻的点上(移动到1和2上),此时我们只需要对比移动那块的棋子成本最低即可
算法
- 遍历棋子下标 position 数组
- 判断元素的奇偶性,把奇数下标记录在odd 元素里
- 对比奇数格子上的棋子和偶数格子上的棋子的数量,返回两者最小值 即可
代码示例
func minCostToMoveChips(position []int) int {
odd := 0
for _, v := range position {
if v & 1 == 1{
odd++
}
}
//len(position) - odd表示偶数格子的数量
if odd > len(position) - odd {
return len(position) - odd
}
return odd
}

复杂度分析
- 时间复杂度:O(n) 其中n表示数组长度,遍历数组需要花费O(n)的时间
- 空间复杂度:O(1) 没有申请额外空间
边栏推荐
- 剑指offer基础版 ----第31天
- C语言文件读、写、定位函数
- uni-app进阶之样式框架/生产环境【day10】
- [Introduction to MySQL 8 to Mastery] Basics - silent installation of MySQL on Linux system, cross-version upgrade
- Proteus 8 Professional安装教程
- 关于superset集成到自己的项目中
- 数据库上机实验7 数据库设计
- leetcode-每日一题剑指 Offer II 041. 滑动窗口的平均值(队列模拟)
- 数据库上机实验3 连接查询和分组查询
- The interviewer asked me how to divide the database and the table?Fortunately, I summed up a set of eight-part essays
猜你喜欢
随机推荐
Distributed Transactions - Introduction to Distributed Transactions, Distributed Transaction Framework Seata (AT Mode, Tcc Mode, Tcc Vs AT), Distributed Transactions - MQ
解决响应式数据依赖响应式数据无响应问题
数据库上机实验1 数据库定义语言
基于web3.0使用钱包Metamask的三方登陆
uni-app进阶之样式框架/生产环境【day10】
面试官竟然问我怎么分库分表?幸亏我总结了一套八股文
mysql5.7.35安装配置教程【超级详细安装教程】
关于小白安装nodejs遇到的问题(npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
剑指offer专项突击版 ---第 5 天
Kubernetes加入集群的TOKEN值过期
Refinement of the four major collection frameworks: Summary of List core knowledge
numpy和pytorch中的元素拼接操作:stack,concatenat,cat
Why use Flink and how to get started with Flink?
分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
面试官问我TCP三次握手和四次挥手,我真的是
Kubernetes 证书可用年限修改
闭包(五)----一个常见的循环
剑指offer专项突击版 --- 第 4 天
可以“繁殖”的程序
Flink sink ES 写入 ES(带密码)






![[MQ I can speak for an hour]](/img/ef/863c994ac3a7de157bd39545218558.jpg)

