leetcode 625. Minimum Factorization

xiaoxiao2021-02-28  81

leetcode 625. Minimum Factorization

题目中给的是最小的,所以思考时从2开始想起,陷入怎样将多个2组合,比较混乱。

从9开始,把大的因子取出来,很多问题都可以用贪心的办法来解决,关键是要找到贪心的策略

public class Solution { public int smallestFactorization(int a) { int k = 9; if(a==1) return 1; List<Integer> ans = new ArrayList<Integer>(); while(a>1 && k>1){ // System.out.println(k); if(a%k==0){ a = a/k; ans.add(k); }else{ k--; } } if(a>10 || ans.size()>=10) return 0; int res = 0; int len = ans.size(); // System.out.println(len); for(int i=len-1; i>=0; i--){ res = res*10 + ans.get(i); } return res; } }

转载请注明原文地址: https://www.6miu.com/read-30307.html

最新回复(0)