問題描述:
在乙個mxn的矩陣中a,每個舉證單元存放著一定數量(a(i,j)>=0)的硬幣,假設有乙個小機械人,它從舉證的左上角a(0,0)開始,每經過乙個單元格就收集其中的所有硬幣,並且只能向右走或者往下走,問它從左上角一直到右下角a(m,n),能夠收集最多的硬幣是多少?
例如,以2x3的簡單矩陣為例:
小機械人如果按照路徑:(0,0)->(0,1)->(1,1)->(1,2)的路徑走的話,可以收集到最多的硬幣數:21。
分析:
由於該問題對每一步所走路徑的方向有確定的限制:只能是向右走或者是向下走,實際上尋找其遞推式是很簡單的。
實現:
packageagdp;
public
class
collectioncoins
}return
ary;
} public
static
int getmostcoins(int
ary)
}return
aux[m][n];
}public
static
void
main(string args)
int result =getmostcoins(ary);
system.out.print(result);}}
稱硬幣問題
稱硬幣問題算是經典問題了,很考驗邏輯能力,因此常出現在號稱智商160或智商180的題集中,現在有些企業招聘也喜歡問這種問題。稱硬幣的問題基本上形式類似,只是硬幣總個數有差別,形式為 有n枚硬幣,外觀無法區別,但是有一枚是假幣 可能告訴你是輕或重,也可能說不知道輕重 問用一無砝碼的天平,最少幾次稱出那...
最少硬幣問題
問題描述 有n種不同面值的硬幣,各硬幣面值存於陣列t 1 n 現用這些面值的錢來找錢 各面值的個數存在陣列num 1 n 中。程式設計任務 對於給定的1 n 10,硬幣面值陣列 各面值的個數及錢數m,0 m 2001,程式設計計算找錢m的最少硬幣數。input 第乙個數字n,後面n行每行兩個數,面值...
最少硬幣問題
本文內容遵從 cc版權協議 設有n 種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢。可以使用的各種面值的硬幣個數與面值分別存於陣列coin 1 n 和t 1 n 中。對任意錢數0 m 20001,設計乙個用最少硬幣找錢m的方法,對於給定的1 n 10,硬幣面值陣列t...