算法——找规律

本质

这类题型的本质就是发现规律从而找到更简单的算法

例题

  • 暴力解法那就是从前往后或者从后往前枚举所有可能的情况,算法复杂度较高。

  • 首先要结合正难则反的思路,然后把s->t的最小操作次数转换成t->s的最小操作次数(当然*2和-1要换成/2和+1),我们可以分情况讨论,t的上一个数变成t有如下几种情况:

    可以发现,如果t是奇数t的上一个数就是t+1;如果t是偶数的话,t的上一个数可以是t+1也可以是t/2,不过,加x个1再除以2等价于个除以2再加y个1而,y<x,因此偶数的第三种情况的操作次数一定大于前两种情况,所以如果t是偶数的话就除以2。
    不过后来发现以上假设都是基于t > s的情况,如果t < s 有些推论就不成立,比如偶数中的第三种类型最前面不一定有*2。故此,我们补充完整的情况:


  • 少量的箭引爆气球就是尽量在重叠区射箭,一次性引爆多个气球。对于没有和其他气球重叠起来的气球,需要单独的箭来引爆这里有一个问题,就是假设一个气球分别和两个气球重叠,应该向那个区域射箭?其实无论向哪儿射箭,最后没被射的气球都成了单独的气球,仍旧需要箭射爆。所以只要是重叠区以及单独的气球都需要射箭。

  • 我们要找的就是重叠区和单独气球的数量。

相关推荐
(Charon)40 分钟前
【C++】定时器进阶:使用最小堆管理定时任务
c++·算法
hansang_IR1 小时前
【题解】 [省选联考 2021 A/B 卷] 卡牌游戏
c++·算法
这个DBA有点耶1 小时前
COUNT慢不是因为用了*,是这5个原因——1000万行数据实测+执行计划深度解析
数据库·mysql·算法
贾伟康1 小时前
【口算王|01】HarmonyOS ArkTS 口算题生成实战:按年级、运算类型和难度生成可控题目
算法·harmonyos·arkts·随机生成·口算题
lzx_0021 小时前
C++11(一)
开发语言·c++·算法
529宝宝起名网2 小时前
用 Python 实现名字寓意评分算法:基于 NLP 语义分析的名字内涵深度评估
python·算法·自然语言处理
带多刺的玫瑰3 小时前
Leecode#26刷题之删除有序数组中的重复项
数据结构·算法·leetcode
en.en..3 小时前
C语言核心解析:#define与typedef本质区别
开发语言·c++·算法
wabs6666 小时前
关于二叉树【429.N叉树的层序遍历的思考】
数据结构·c++·算法·leetcode·二叉树
hetao17338376 小时前
2026-09-08 hetao1733837 的刷题记录
c++·算法