53. 最大子数组和
class Solution {
public int maxSubArray(int[] nums) {
int n=nums.length;
int[] dp=new int[n+1];
int max =nums[0];
for(int i=1;i<n+1;i++){
dp[i]=Math.max(nums[i-1],dp[i-1]+nums[i-1]);
if(dp[i]>max) max=dp[i];
}
return max;
}
}
392. 判断子序列
class Solution {
public boolean isSubsequence(String s, String t) {
int n=s.length();
int m=t.length();
if(n>m) return false;
int len=Math.min(n,m);
if(len == 0) return true;
int[][] dp=new int[n+1][m+1];
for(int i=1;i<n+1;i++){
for(int j=1;j<m+1;j++){
if(s.charAt(i-1) == t.charAt(j-1)){
dp[i][j]=dp[i-1][j-1]+1;
}else{
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);
}
}
}
return dp[n][m]==len ? true : false;
}
}