Guess Number Higher or Lower II LeetCode solution in Java
1class Solution {2public int getMoneyAmount(int n) {3int dp[][] = new int[n + 1][n + 1];4for (int a[] : dp) {5Arrays.fill(a, -1);6}7return solve(1, n, dp);8}910static int solve(int start, int end, int[][] dp) {11if (start >= end) return 0;12if (dp[start][end] != -1) return dp[start][end];13int min = Integer.MAX_VALUE;14for (int i = start; i <= end; i++) {15min = Math.min(min, i + Math.max(solve(start, i - 1, dp), solve(i + 1, end, dp)));16}17dp[start][end] = min;18return min;19}20}