dp问题,写的好费劲,太久没有写dp了
class Solution {
public:
int minimumDeleteSum(string s1, string s2) {
int row=s1.size()+1;
int col=s2.size()+1;
s1 = " "+s1;
s2 = " "+s2;
vector<int> temp(col, 0);
vector<vector<int>> dp(row, temp);
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if(s1[i]==s2[j])
{
if(i-1>=0&&j-1>=0)
dp[i][j] = dp[i-1][j-1];
else
dp[i][j] = 0;
}
else
{
int temp1;
int temp2;
if(j-1>=0&&i-1>=0)
{
temp1 = dp[i][j-1]+s2[j];
temp2 = dp[i-1][j]+s1[i];
dp[i][j] = temp1>temp2?temp2:temp1;
}
else if(j-1<0&&i-1>=0)
dp[i][j] = dp[i-1][j] + s1[i];
else if(j-1>=0&&i-1<0)
dp[i][j] = dp[i][j-1] + s2[j];
else
dp[i][j] = 0;
}
//cout<<i<<" "<<j<<" "<<dp[i][j]<<endl;
}
}
return dp[row-1][col-1];
}
};