當前位置:編程學習大全網 - 編程軟體 - 小猴子摘桃子編程教程

小猴子摘桃子編程教程

小猴子下山了,沿著下山的路線,有壹排桃樹,每棵樹上都有壹些避孕套。小猴子想摘桃子,但是有壹些條件需要觀察。小猴子只能往山下走,不能回頭。每棵樹最多只能摘壹個桃子,壹旦它從壹棵樹上摘了壹個桃子,它就不能從桃子比這棵樹少的樹上摘桃子了。這只小猴子最多能摘多少個桃子?例如,如果有五類樹分別有10、4、5、12和8個桃子,那麽小猴子最多可以從有4、5和8個桃子的樹上摘3個桃子。這個問題可以用dp解決。Dp[i]表示在這種情況下以I位置的樹作為最後壹棵樹可以獲得的最大的桃子。1.那麽dp[i]必須大於等於1,因為如果前面不選,那麽這棵樹壹定會得到桃子。2.對於第壹個DP[j](j;dp[i])?DP[I]= DP[j]+1;因此...可以有以下代碼:import Java . util . scanner;public class Main { public static void Main(String[]args){ Scanner SCN = new Scanner(system . in);int trees = SCN . nextint();int[]peaches = new int[trees];for(int I = 0;我& lt樹木;i++){ peaches[I]= SCN . nextint();} int[]DP = new int[trees];for(int I = 0;我& lt樹木;i++){ DP[I]= 1;for(int j = 0;j & lt我;j++) { /**?*表示j位置的樹可以取,如果取桃,總大小可以超過I位置?*/ if(桃子[j]& lt;桃子[I]& amp;& ampDP[j]+1 & gt;DP[I]){ DP[I]= DP[j]+1;} } } int max = 1;for(int I:DP)max = max & gt;我?max:我;system . out . println(max);}}
  • 上一篇:C語言中的switch分支語句是什麽?
  • 下一篇:數據分析員招聘要求有哪些?
  • copyright 2024編程學習大全網