Afor (int i = 1; i < nums.length; i++) {dp[i] = 1;for (int j = 0; j nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}}
Bfor (int i = 1; i < nums.length; i++) {dp[i] = 0;for (int j = 0; j nums[j]) {dp[i] = Math.max(dp[i], dp[j] + 1);}}}
Cfor (int i = 1; i < nums.length; i++) {dp[i] = 1;for (int j = 0; j nums[j]) {dp[i] = Math.max(dp[i], dp[j])+1;}}}
Dfor (int i = 1; i < nums.length; i++) {dp[i] = 0;for (int j = 0; j nums[j]) {dp[i] = Math.max(dp[i], dp[j])+1;}}}