动态规划作为算法中较难的部分,还是下定决心慢慢整理。人生建议:遇到太难的动态规划,建议直接放弃。动态规划解题也有技巧,一般而言题目的问题都是:移动最少的次数到达终点。此时我们只需要:
- 设置
dp
数组,数组大小一般和输入相同,但细节需要微操。dp[i]
的含义是,到达i
的最少次数 - 对
dp
数组进行初始化,即开始动态规划时,起始所需的次数,一般为 0,不过也有特殊情况 dp
的转移,如何从上一状态计算当前状态
掌握这三点,一般难度的动态规划是可以做出来的。
动态规划作为算法中较难的部分,还是下定决心慢慢整理。人生建议:遇到太难的动态规划,建议直接放弃。动态规划解题也有技巧,一般而言题目的问题都是:移动最少的次数到达终点。此时我们只需要:
dp
数组,数组大小一般和输入相同,但细节需要微操。dp[i]
的含义是,到达 i
的最少次数dp
数组进行初始化,即开始动态规划时,起始所需的次数,一般为 0,不过也有特殊情况dp
的转移,如何从上一状态计算当前状态掌握这三点,一般难度的动态规划是可以做出来的。
算法继续整理系列之区间问题。这类问题可以总结或者变化为:给定多个区间,求满足覆盖范围的最小相交区间的数量。一般而言都是:题目给定一个乱序的区间。我们需要对区间进行排序调整和统计结果,来满足题目条件。其中变化的部分只有如何处理相交区间,因此整理一个通用的算法模板。
之前一直好奇 C++
中的 this
和 python
中的 self
到底是什么关系,为什么 C++
要显式的写出来,python
则不需要。顺便深入了解一下 this
。
之前对 static
的理解仅限于:在类中声明这种类型的变量,可以通过这个变量知道这个类被创建了多少个对象。但是前些日子刷 leetcode
的时候,发现类中自定义的 cmp
函数如果不是 static
类型,就无法被类内的 sort
函数识别。所以今天来一探究竟。
不出意外的话,这应该是 python
复习的最后一部分了,之前写 python
的时候,一般是在实践中积累一些常见的用法而后系统的学习,比如生成器装饰器、高级数据结构、各种工具库乃至 __init__.py
等细节。但 python
帮开发者自动进行了垃圾回收,所以一直没涉足这个领域,今天来了解一下 python
中垃圾回收的三种机制:引用计数、标记清除和分代回收。
很久之前我觉得移动端应用几百兆的模型不切实际,在不考虑蒸馏、量化等压缩方法下,发现了 MobileNet 设计的很神奇,大小只有几 MB,可以说是一股清流了。就整理发布了一下,然后今天发现找不到了,神奇。(于是顺手和 ShuffleNet 一并整理到轻量化的神经网络中)
在之前 yolox 解析与改进 的文章中,提到了使用 CIoU Loss 改进 SimOTA 分配正样本机制导致的小目标检测精度低的问题,就顺手来整理一些常用定位损失与演化过程。本文所有的图,绿色为 Truth,蓝色为预测结果。