蓝桥杯 翻硬币

本文介绍了蓝桥杯竞赛中的一道翻硬币题目,通过暴力求解方法进行解析。思路是逐位检查硬币状态,若不匹配则翻转,并记录步数。遍历所有起点,找到能匹配成功的最小步数。文章提供了代码实现,并提及实际时间复杂度小于平方级别,适合题目规模。作者还邀请读者交流讨论。
摘要由CSDN通过智能技术生成

原题链接:1208. 翻硬币 - AcWing题库

思路:首先我们先想想这道题的暴力做法:从左往右依次操作一遍,只要当前位置硬币不匹配,直接翻转,而由于是从左往右操作,所以当前位置-1一定是匹配上了的,所以要翻当前位置和当前位置+1的硬币。操作完后遍历一下两个串,看看是不是都匹配上了,如果都匹配上了再更新答案。然后依次枚举每个起点执行上述流程,这样就涵盖了所有可能了。

接下来分析一下暴力的时间复杂度:比较直观,每次遍历一遍,一共遍历n次,所以时间复杂度O(n²),这里说明一下,事实上时间复杂度要小于O(n²),因为每次遍历不是真的从头开始,这道题字符串长度不超过100,10000远小于1e8,所以暴力完全ok。

所以做法就很清晰了:

  • 从起点开始遍历,如果不匹配则turn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值