Leetcode1217. 玩筹码

Leetcode 1217. 玩筹码 有 n 个筹码。第 i 个芯片的位置是 position[i] 。 我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个芯片的位置从 position[i] 改变为: position[i] + 2 或 position[i] - 2 ,此时 cost = 0 position[i] + 1 或 position[i] - 1 ,此时 cost = 1 返回将所有筹码移动到同一位置上所需要的 最小代价 。 示例 1: 输入:position = [1,2,3] 输出:1 解释:第一步:将. 阅读详情

Every day a Leetcode

题目来源:1217. 玩筹码

解法1:贪心

首先很容易得出:

  1. 从某一个偶(奇)数位置改变到另一个偶(奇)数位置,此时的最小开销为 0;
  2. 从某一个偶(奇)数位置改变到另一个奇(偶)数位置,此时的最小开销为 1。

那么我们可以把初始每一个偶数位置的「筹码」看作一个整体,每一个奇数位置的「筹码」看作一个整体。因为我们的目标是最后将全部的「筹码」移动到同一个位置,那么最后的位置只有两种情况:

  1. 移动到某一个偶数位置,此时的开销最小值就是初始奇数位置「筹码」的数量。
  2. 移动到某一个奇数位置,此时的开销最小值就是初始偶数位置「筹码」的数量

代码:

/*
 * @lc app=leetcode.cn id=1217 lang=cpp
 *
 * [1217] 玩筹码
 */

// @lc code=start
class Solution
{
public:
    int minCostToMoveChips(vector<int> &position)
    {
        int odd = 0, even = 0;
        for (int &index : position)
        {
            if (index % 2)
                odd++;
            else
                even++;
        }
        return min(odd, even);
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中n为数组position的长度,只对数组进行了一次遍历。

空间复杂度:O(1)。

使用3sigma原则去除数据表中的极端值 本文使用3sigma解决数据表中出现的极端值问题,其中包括基本原理、使用原则(检验方法)、代码展示这3个部分 阅读详情

相关推荐

【免费】最新区块链钱包和私钥的助记词碰撞器,bybit使用python开发

【免费】最新助记词钱包碰撞器,全链全网络,一周左右就有,稳定高效。

weixin_48529185的博客 1万+

LeetCode 1217 玩筹码

leetcode 1217 题解

quixotic的博客 253

STM32单片机语音提示盲人拐杖整点报时夜间警示超声波测距

STM32单片机语音提示盲人拐杖整点报时夜间警示超声波测距 关键词:语音提示盲人拐杖 整点报时 超声波测距拐杖

LS840233684的博客 2048

LeetCode1217.玩筹码(图解)

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

weixin_43294413的博客 636

安装了anaconda,pycharm导入numpy时提示没有该包(模块)?

**问题详情:**我安装了anaconda,在利用Pycharm学习numpy这个库的时候,导入numpy这个包的时候提示我没有nummpy这个模块:No module named numpy.如下图所示。 应该说安装了Anaconda,里边就自带了numpy这个库,就应该能够使用。我一个新手怎么搞得懂呢?于是网上查了查找到了一个解决办法,说是我项目的解释器应该设置为Anaconda安装目录下的python.exe,而不应该是系统自带的:https://blog.csdn.net/aanndd77/art

qq_39820505的博客 1万+

告别Mumu!在Mac(M1/M2)上免费搭建Android Emulator的保姆级避坑指南

本文提供在Mac(M1/M2)上免费搭建高性能Android模拟器的详细指南,特别针对Apple Silicon芯片优化。通过使用Google官方的ARM原生模拟器,开发者可以获得3-5倍的性能提升,降低CPU占用,并避免x86转译的兼容性问题。文章涵盖从环境准备、工具安装到AVD创建与优化的全流程,帮助用户避开常见陷阱,实现接近原生性能的体验。

weixin_42531886的博客 599

#力扣LeetCode1217. 玩筹码 @FDDLC

题目描述: 1217. 玩筹码 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { public int minCostToMoveChips(int[] a) { int[] cnt=new int[2]; for(int e:a)cnt[e%2]++; return Math.min(cnt[0],cnt[1]); } } .

LiuXingchang的博客 295

YOLO26改进策略【Neck】| CVPR2025 LCA轻量交叉注意力 跨层级双向引导 + 分层降噪增强,提升微小目标特征表达

简单相加、拼接融合无法建立深浅层双向约束关系,浅层微小目标易被深层背景覆盖,深层全局信息难以修正浅层噪声;普通单路自注意力仅单一层内建模依赖,缺少跨层级特征互引导机制,深浅特征信息割裂;标准多头跨注意力计算量大、参数量高,轻量化单模态检测/分割网络部署困难,无法区分前景目标与背景噪声。为此设计单模态轻量化交叉注意力LCA,构建浅层细节、深层语义双分支双向引导结构,轻量完成跨层级特征交互,同步降噪并强化单模态微小目标特征。

Limiiiing的博客 523

leetcode 1217. 玩筹码

【题目】1217. 玩筹码 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。 示例 1: 输入:chips = [1,2,3] 输出:1 解释:第二个筹码移动到位置三的代价是 1,第一个筹

Sophia_fez的博客 617

再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

本篇文章介绍知识图谱的相关知识。从便于理解的角度切入,给出知识图谱的形象化定义,并介绍了国内的中文医学知识图谱CMeKG,还以用户视角体验了中文产科医学知识图谱。目录二介绍了如何部署安装Neo4j数据库,并解决了部署过程中遇到的一些基础错误,随后介绍了Neo4j图数据库的基础操作。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 2619

毕设-MobileNetV4:给YOLOv8装上轻量化“引擎”——通用瓶颈与C2f融合的实战教程

本文介绍了一种将MobileNetV4与YOLOv8结合的目标检测模型轻量化方案。MobileNetV4通过通用瓶颈(UB)结构实现多任务适配,其核心改进包括动态卷积核、注意力机制和多路径特征聚合,显著提升特征提取能力。作者详细阐述了如何在YOLOv8框架中实现MobileNetV4的通用瓶颈模块,包括"膨胀-卷积-注意力-压缩"的流程设计,并构建完整的backbone网络。该方案通过融合MobileNetV4的轻量化优势与YOLOv8的高效检测架构,在移动设备上实现了精度与速度的良好平

FJN110的博客 505

[leetcode1217玩筹码]

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

weixin_45758512的博客 207

Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving

通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。

c_cpp_csharp的专栏 395

Leetcode 1217.玩筹码(Play with Chips)

Leetcode 1217.玩筹码 1 题目描述(Leetcode题目链接)   数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。 输入:chips = [1,2,3] 输出:1 解释

qq_39378221的博客 332

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

python-leetcode-1217. 玩筹码

由于移动+2或-2的代价为0,意味着所有奇数位置的筹码可以互相移动而不产生代价,同理,所有偶数位置的筹码也可以互相移动而不产生代价。但从奇数位置移动到偶数位置,或者从偶数位置移动到奇数位置,每次都需要1的代价。统计所有位于的筹码数量odd_count。统计所有位于的筹码数量even_count。由于我们最终目标是把所有筹码移动到同一位置上,最优策略是将较少的筹码移动到较多的筹码所在的位置(因为移动的代价是1因此,最小代价是。

Lucy_wzw的博客 451

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LeetCode力扣每日一题1217. 玩筹码

有 n 个筹码。第 i 个筹码的位置是 position[i] 。我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为:position[i] + 2 或 position[i] - 2 ,此时 cost = 0 position[i] + 1 或 position[i] - 1 ,此时 cost = 1 返回将所有筹码移动到同一位置上所需要的 最小代价 。示例 1: 示例 2: 示例 3: 提示:...

92377 287

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Python】【难度:简单】Leetcode 1217. 玩筹码【完】

数轴上放置了一些筹码,每个筹码的位置存在数组chips当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。 示例 1: 输入:chips = [1,2,3] 输出:1 解释:第二个筹码移动到位置三的代价是 1,第一个筹码移动到位置...

thomashhs12的博客 516

【leetcode-python-18】1217. 玩筹码

【leetcode-python-18】1217. 玩筹码渣渣原始版(54.84%) leetcode 1217. 玩筹码 渣渣原始版(54.84%) class Solution(object): def minCostToMoveChips(self, chips): """ :type chips: List[int] :rtype: int """ x = 0 y = 0 for

huajiao4的博客 392

LeetCode—— 1217 玩筹码

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

优快云的博客 302

[LeetCode]1217. 玩筹码

ssss

非止。的专栏 265

LeetCode 1217. 玩筹码

目录结构 1.题目 2.题解 2.1 暴力解 2.2数学规律 1.题目 数轴上放置了一些筹码,每个筹码的位置存在数组chips当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。 示例: 输入:chips = [1,2...

HarvestWu的博客 268

LEETCODE | PYTHON | 1217 | 玩筹码

LEETCODE | PYTHON | 1217 | 玩筹码

Angelawlc的博客 310

力扣1217. 玩筹码

有 n 个筹码。第 i 个筹码的位置是 position[i] 。我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为:position[i] + 2 或 position[i] - 2 ,此时 cost = 0 position[i] + 1 或 position[i] - 1 ,此时 cost = 1 返回将所有筹码移动到同一位置上所需要的 最小代价 。来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/

秀强的专栏 349

【力扣题解】1217. 玩筹码

1217. 玩筹码题解

爱做梦的猪的博客 728

leetcode1217——玩筹码(简单)

leetcode1217——玩筹码(简单) 题目 数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。 你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以): 将第 i 个筹码向左或者右移动 2 个单位,代价为 0。 将第 i 个筹码向左或者右移动 1 个单位,代价为 1。 最开始的时候,同一位置上也可能放着两个或者更多的筹码。 返回将所有筹码移动到同一位置(任意位...

dedell的博客 192

LeetCode1217玩筹码

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

max119xlx的博客 213
上一篇: Leetcode154. 寻找旋转排序数组中的最小值 II
下一篇: Leetcode130. 被围绕的区域
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值