无奈ieq 2020-09-30 10:20 采纳率: 93.8%
浏览 66
已采纳

程序运行正确,就想问下solve方法的最后一行三目运算符的意思,解释一下这一行?


public class a {
    public static int coinChange(int[] smallChanges, int amount) {//找出应该用于兑换的面值
        int[] count=new int[amount+1];

        for(int i:smallChanges){//小额的值丢给i
            if(i<=amount){
                count[i]=1;//面值比总额还大的舍去,可以用的,在count中加1
            }
        }

        return solve(smallChanges,amount,count);
    }
    public static int solve(int[]smallChanges,int amount,int[] count){
        if(amount<0){
            return -1;
        }
        if(amount==0){
            return 0;
        }
        if(count[amount]!=0){
            return count[amount];//刚好有个面值最大的与之对应
        }
        int min=Integer.MAX_VALUE;

        int temp;

        for(int i:smallChanges){
            temp=solve(smallChanges,amount-i,count);
            if(temp!=-1&&min>temp){
                min=temp;
            }
        }
        return count[amount]= min!=Integer.MAX_VALUE ?min+1:1;

    }
    public static void main(String[] args){
        int[] smallChanges={16,13,5};
        int amount=34;
        System.out.println(coinChange(smallChanges,amount));
    }
}

程序运行正确,就想问下solve方法的最后一行三目运算符的意思,解释一下这一行?
return count[amount]= min!=Integer.MAX_VALUE ?min+1:1;这一行

  • 写回答

2条回答 默认 最新

  • Happywzy~ 2020-09-30 10:35
    关注

    count[amount] 和 Integer.MAX_VALUE 是否不一样,不一样返回count[amount] +1, 否在返回 1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题