Javaダイナミックプランニングによるヨットレンタル問題の解決

662 ワード

問題は多く説明しないで、直接コードを貼ります
public class ShipRent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print(getMinMoney(new int[][]{{0,5,15,10},{0,0,7,3},{0,0,0,2},{0,0,0,0}}));
	}
	
	public static int getMinMoney(int price[][]) {
		for (int i = 0; i < price.length; i++) {
			for (int j = 0; j < i; j++) {
				for (int k = j+1; k < i; k++) {
					if (price[j][k]+price[k][i]

第1層ループのiは、i番目のポイントまでの最小価格を表し、iより前のレンタルポイントの各ポイント間の最低価格が求められている
第2層サイクルにおけるjは開始点である
第3層サイクルにおけるkは中間点である
コードは簡単にこんなにたくさん言って、自分でゆっくり体得します.
上にテストの例がありますが、最後の結果は8です.