数位dp是解决一类选择有约束的数字的个数的问题的解法,就是数一个区间有多少个满足题目条件的数字的个数,通常暴力不能解决,但其实数位dp的本质也是暴力枚举,只是方式不一样,做数位dp主要分为两步:
第一,找到并弄清楚题目的约束条件,注意有些题要考虑前导零的情况;
第二 ,确定dp记忆化数组的维度的意义,尽量越多越好,但是不要超出空间,因为维度太少,枚举记忆化的时候,大的数字得到结果可能会把小的数字得到的结果进行覆盖,这样就产生冲突,维度多一点就不会产生这种冲突。上两步分析完之后,再确定空间复杂度,如果超了就找方法降低空间。