import java.util.Scanner; public class Main {     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int t = scanner.nextInt();         for (int i = 0; i < t; i++) {             int n = scanner.nextInt();             int k = scanner.nextInt();             int[] heights = new int[n];             for (int j = 0; j < n; j++) {                 heights[j] = scanner.nextInt();             }             if (getResult(heights, k)) {                 System.out.println("YES");             } else {                 System.out.println("NO");             }         }     }     public static boolean getResult(int[] heights, int k) {         boolean[][] dp = new boolean[heights.length][2];         dp[0][0] = true;         dp[0][1] = true;         for (int i = 1; i < heights.length; i++) {             for (int j = i - 1; j >= 0 && j >= i - k; j--) {                 if (heights[i] <= heights[j]) {                     dp[i][0] = true;                     if (dp[j][1]) {                         dp[i][1] = true;                         break;                     }                 }             }             if (!dp[i][0]) {                 for (int j = i - 1; j >= 0 && j >= i - k; j--) {                     if (dp[j][1]) {                         dp[i][0] = true;                         break;                     }                 }             }         }         return dp[heights.length - 1][0];     } } 有大佬能帮我看看这个跳柱子的解法哪里有问题吗?我只能AC 10%。

相关推荐

牛客网
牛客企业服务