Integer Break LeetCode solution in Java
1class Solution {2public int integerBreak(int n) {3if (n <= 1) {4return 0;5}6int[] memo = new int[n + 1];7return maxProduct(n, memo);8}910private int maxProduct(int n, int[] memo) {11if (n == 2) {12return 1;13}14if (memo[n] != 0) {15return memo[n];16}17int max = 0;18for (int i = 1; i < n; i++) {19max = Math.max(max, Math.max(i * (n - i), i * maxProduct(n - i, memo)));20}21memo[n] = max;22return max;23}24}