java题目 HJ103 Redraiment的走法
描述
Redraiment是走梅花桩的高手。Redraiment可以选择任意一个起点,从前到后,但只能从低处往高处的桩子走。他希望走的步数最多,你能替Redraiment研究他最多走的步数吗?
数据范围:每组数据长度满足 1 \le n \le 200 \1≤n≤200 , 数据大小满足 1 \le val \le 350 \1≤val≤350
输入描述:
数据共2行,第1行先输入数组的个数,第2行再输入梅花桩的高度
输出描述:
输出一个结果
示例1
输入:
6 2 5 1 5 4 5
输出:
3
说明:
6个点的高度各为 2 5 1 5 4 5 如从第1格开始走,最多为3步, 2 4 5 ,下标分别是 1 5 6 从第2格开始走,最多只有1步,5 而从第3格开始走最多有3步,1 4 5, 下标分别是 3 5 6 从第5格开始走最多有2步,4 5, 下标分别是 5 6 所以这个结果是3。
1 import java.util.*; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 while(sc.hasNext()) { 7 int n = sc.nextInt(); 8 int[] big =new int[n]; 9 for(int i =0; i<n; i++) { 10 big[i] = sc.nextInt(); 11 } 12 count(big); 13 } 14 } 15 16 //动态规划最长递增序列 17 public static void count(int []nums){ 18 int []dp = new int[nums.length]; 19 //初始化为1 20 Arrays.fill(dp,1); 21 int max = 1; 22 for(int i=1; i<nums.length; i++) { 23 for(int j=0; j<i; j++) { 24 if(nums[j] < nums[i]) { // i位置值大于j位置 25 dp[i] = Math.max(dp[i], dp[j] +1); //则在j位置的dp值上+1,然后取大的 26 } 27 max= Math.max(max,dp[i]); 28 } 29 } 30 System.out.println(max); 31 } 32 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix