int[]dp=new int[nums.length];
dp[0]=1;
int res=1;
if(nums.length==1){
return res;
}
for(int i=1;i<dp.length;i++){
if(nums[i]>nums[i-1]){
dp[i]=dp[i-1]+1;
res=Math.max(res,dp[i]);
}else{
dp[i]=1;
}
}
return res;
int[][]dp=new int[nums1.length+1][nums2.length+1];
int res=0;
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(nums1[i-1]==nums2[j-1]){
dp[i][j]=dp[i-1][j-1]+1;
res=Math.max(res,dp[i][j]);
}
}
}
return res;
int[][]dp=new int[text1.length()+1][text2.length()+1];
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(text1.charAt(i-1)==text2.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[dp.length-1][dp[0].length-1];
int[][]dp=new int[nums1.length+1][nums2.length+1];
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(nums1[i-1]==nums2[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[dp.length-1][dp[0].length-1];
if(s.length()>t.length()){
return false;
}
boolean[][]dp=new boolean[s.length()+1][t.length()+1];
for(int i=0;i<dp[0].length;i++){
dp[0][i]=true;
}
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(s.charAt(i-1)==t.charAt(j-1)){
dp[i][j]=dp[i-1][j-1];
}else{
dp[i][j]=dp[i][j-1];
}
}
}
return dp[dp.length-1][dp[0].length-1];
int[][]dp=new int[t.length()+1][s.length()+1];
for(int i=0;i<dp[0].length;i++){
dp[0][i]=1;
}
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(t.charAt(i-1)==s.charAt(j-1)){
dp[i][j]=dp[i-1][j-1]+dp[i][j-1];
}else{
dp[i][j]=dp[i][j-1];
}
}
}
return dp[dp.length-1][dp[0].length-1];
int[][]dp=new int[word2.length()+1][word1.length()+1];
for(int i=1;i<dp[0].length;i++){
dp[0][i]=i;
}
for(int i=1;i<dp.length;i++){
dp[i][0]=i;
}
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(word2.charAt(i-1)==word1.charAt(j-1)){
dp[i][j]=dp[i-1][j-1];
}else{
dp[i][j]=Math.min(dp[i-1][j]+1,dp[i][j-1]+1);
}
}
}
return dp[dp.length-1][dp[0].length-1];
int[][]dp=new int[word2.length()+1][word1.length()+1];
for(int i=0;i<dp.length;i++){
dp[i][0]=i;
}
for(int i=0;i<dp[0].length;i++){
dp[0][i]=i;
}
for(int i=1;i<dp.length;i++){
for(int j=1;j<dp[0].length;j++){
if(word2.charAt(i-1)==word1.charAt(j-1)){
dp[i][j]=dp[i-1][j-1];
}else{
dp[i][j]=Math.min(dp[i-1][j-1]+1,Math.min(dp[i][j-1]+1,dp[i-1][j]+1));
}
}
}
return dp[dp.length-1][dp[0].length-1];
int res=0;
boolean[][]dp=new boolean[s.length()][s.length()];
for(int j=0;j<dp.length;j++){
for(int i=0;i<=j;i++){
if(s.charAt(j)==s.charAt(i)&&(j-i<2||dp[i+1][j-1])){
dp[i][j]=true;
res++;
}
}
}
return res;
int[][]dp=new int[s.length()][s.length()];
for(int i=0;i<s.length();i++){
dp[i][i]=1;
}
int res=1;
for(int i=s.length()-2;i>=0;i--){
for(int j=i+1;j<s.length();j++){
if(s.charAt(i)==s.charAt(j)){
dp[i][j]=dp[i+1][j-1]+2;
res=Math.max(dp[i][j],res);
}else{
dp[i][j]=Math.max(dp[i+1][j],dp[i][j-1]);
}
}
}
return res;