理解动态规划后,压缩空间是一大难点,需要找出遍历过程中需要用到的状态和不需要用到的状态,去掉不需要用到的状态,存储需要用到的状态。
import java.util.*;
public class Solution {
/**
* 动态规划
* 状态:dp[i + 1][j + 1],str1[0-i]编辑成str2[0-j]的最小cost
*
* min edit cost
* @param str1 string字符串 the string
* @param str2 string字符串 the string
* @param ic int整型 insert cost
* @param dc int整型 delete cost
* @param rc int整型 replace cost
* @return int整型
*/
public int minEditCost (String str1, String str2, int ic, int dc, int rc) {
// write code here
// 直接修改和删除后再添加的效果相同,所以取cost小的那一个。
rc = Math.min(rc, ic + dc);
int len1 = str1