无奈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 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助