魔法师 (@Constanline) 在 Leetcode每日一题 —— 3348. 最小可整除数位乘积 II 中发帖
思路
今天的题应该我应该是走了一条很麻烦的岔路,一开始想的简单,后来也只能在这一条路上修修补补了。
大体思路如下:
先把t拆解乘质数2、3、5、7组合,如果还包含其他质数,直接返回-1;
因为要求无零,隐藏如果遇到0,转换为从这位开始后面全部跟1的数值
创建四个常用方法
构造符合当前剩余质因数条件的最小值 buildMinNumber(int[])
构造符合当前剩余质因数条件的最大值 buildMaxNumber(int[])
计算符合当前剩余质因数条件的最小值长度 calculateMinLength(int[])
当前剩余质因数条件减去当前位数值后的结果 subtract(int[],int)
开始构造,原数值从左往右遍历,
如果构造最大值不小于剩余位的值,那么继续遍历下一位
如果构造最大值小于剩余位的值,那么判断当前位的值。如果当前位是9,那么往...