[Java] 746.階段を上るのに最小限のコストを使用します----未来を予測し、逆の順序で段階的に進みます!!!

配列の各インデックスはラダーとして機能し、i番目のラダーは非負の物理的労力コストiに対応します。

はしごを登るたびに、対応する物理的なコスト値を費やす必要があります。その後、1つのはしごを登り続けるか、2つのはしごを登り続けるかを選択できます。

あなたは床の最上部に到達するために最低のコストを見つける必要があります。最初に、インデックス0または1の要素を初期ラダーとして選択できます。

例1:

入力:コスト= [ 10、15、20 ]
出力:15
説明:最小コストは、コスト[1]から開始し、2つのステップを実行して、はしごの最上部に到達します。合計コストは15です。
例2:

入力:コスト= [ 1、100、1、1、1、100、1、1、100、1 ]
出力:6
説明:最低コストの方法は、コスト[0]から開始し、1を1つずつ実行することです。 、スキップコスト[3]、合計6のコスト。
注意:

コストの長さは[2、1000]になります。
各cost [i]は、範囲が[0、999]の整数型になります。

public static int minCostClimbingStairs(int[] cost) {
    
    
		if(cost.length==0) {
    
    
			return 0;
		}
		if(cost.length==1) {
    
    
			return cost[0];
		}
		for(int i=2;i<cost.length;i++) {
    
    
			cost[i]+=Math.min(cost[i-1],cost[i-2]);
		}
		return Math.min(cost[cost.length-1],cost[cost.length-2]);

    }

おすすめ

転載: blog.csdn.net/qq_44461217/article/details/111466862