摘要: /** 题目:最长不含重复字符的子字符串* 解法:动态规划* 定义函数f(i)表示以第i个字符结尾的包含当前字符的不含重复字符的子字符串的最长长度* 如果当前的第i个字符没有出现过,那么f(i)=f(i-1)+1,如果已经出现过,设当前元素与上次出现的距离为d,如果d小于等于* f(i-1),说明上次出现的字符出现在f(i-1)对应的最长字符串之中,f(i)=d;如果d大于f(i-1),则f(i)... 阅读全文
posted @ 2018-02-11 17:59 大熊好好写代码 阅读(159) 评论(0) 推荐(0) 编辑
摘要: //把数字转化成字符串/** 思路:以12258为例,如果从左往右递归,会造成重复计算子问题,我们从右往左计算,创建一个辅助数组,数组的值保存的是* 从当前下标的元素到数组末尾元素这一段子字符串有多少种翻译方法,数组的第i个元素值与数组的第i+1个值和第i+2个值有关* f(i)=f(i+1)+g(i,i+1)*f(i+2),其中g(i,i+1)的值和字符串中第i和第i+1个元素组合是否处于[10... 阅读全文
posted @ 2018-02-11 15:38 大熊好好写代码 阅读(283) 评论(0) 推荐(0) 编辑
摘要: //获取礼物的最大值,此题是典型的动态规划问题//思路:1.设到达下标为(i,j)的元素所能拿到的最大总和为f(i,j),那么次f(i,j)只和到达它上面元素的总和f(i-1,j)和//到达它左边元素的总和f(i,j-1)有关 f(i,j)=max[f(i-1,j),f(i,j-1)]+arr[i,j];设一个一维数组,数组的前j个数组分别是//f(i,0),f(i,1)...f(i,j-1)... 阅读全文
posted @ 2018-02-11 14:03 大熊好好写代码 阅读(198) 评论(0) 推荐(0) 编辑