算法——找规律

本质

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

例题

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

  • 首先要结合正难则反的思路,然后把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。故此,我们补充完整的情况:


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

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

相关推荐
地平线开发者3 小时前
目标检测的 Anchor-Free 和 NMS 到底是什么?
算法·自动驾驶
北顾笙9803 小时前
day24-数据结构力扣
数据结构·算法·leetcode
智者知已应修善业3 小时前
【51单片机独立按键控制往复流水灯启停】2023-6-13
c++·经验分享·笔记·算法·51单片机
pen-ai3 小时前
MAD(Median Absolute Deviation)详解:最稳健的尺度估计方法
人工智能·算法
無限進步D4 小时前
Java 基础算法训练
java·开发语言·算法·入门
门左有棵树4 小时前
蓝桥杯C++组算法知识点整理(考前急救)
c++·算法·蓝桥杯
历程里程碑4 小时前
二叉树---二叉树的最大深度
大数据·数据结构·算法·elasticsearch·搜索引擎·全文检索·深度优先
自我意识的多元宇宙4 小时前
树与二叉树--树的基本概念
数据结构·算法
吃着火锅x唱着歌4 小时前
LeetCode 678.有效的括号字符串
算法·leetcode·职场和发展