@SomeBottleLeetcode每日一题 —— 3536. 两个数字的最大乘积 中发帖

思路
因为输入规模很小,最多也就涉及 10 个数字,完全可以逐位拆出来然后成对枚举。 
但其实,在拆数位的时候我们就可以维护次大值和最大值,最后直接把次大值和最大值相乘即可,也算是一种贪心思想吧。 

代码
class Solution {
public:
    int maxProduct(int n) {
        // 根据输入规模,最大只可能有 10 个数字,直接暴力就可以
        // 暴力时我们可以逐位把数拆出来放到数组
        // 最终我们枚举每对乘积看谁最大
        // 按贪心的角度想,我们完全可以在拆位的时候就找到最大值和次大值
        int maxVal=0,subMax=0;
        while(n>0){
            int d=n%10;
            if(d>maxVal){
 ...
 
 
Back to Top