2023华为od机试C卷【跳格子3】
前言
博主刷的华为机考题,代码仅供参考,因为没有后台数据,可能有没考虑到的情况
如果感觉对你有帮助,请点点关注点点赞吧,谢谢你!
题目描述
输入
6
1 -1 -6 7 -17 7
2
输出
14
思路
1.动态规划:score[i]=max(score[i-1]~score[i-k])+score[i]
2.打印score[i-1]
代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine();int[] score = new int[n];for (int i = 0; i < n; i++) {score[i] = sc.nextInt();}sc.nextLine();int k=sc.nextInt();sc.close();for (int i = 1; i < n; i++) {int max=Integer.MIN_VALUE;for (int j = i-1; j>=i-k&&j>=0; j--) {max=Math.max(max,score[j]);}score[i]+=max;}System.out.println(score[n-1]);}
}