【面试】一系列 动态规划
来源:互联网 发布:整容软件 编辑:程序博客网 时间:2024/05/18 10:37
一. 最大子序列(连续)如,5, -9, 4, 3 (结果为7)
for (int i=0; i<n; i++) { current += a[i]; if (current > res) res = current; if (current < 0) current = 0; return res;}
二. 最长递增子序列(不连续)
temp(j)以第J个元素结尾点递增字串长度temp(j) = max(temp(i), i<j && a[i]<a[j]) + 1temp[0] = 1;for (int i=1; i<n; i++) { temp[i] = 1; for (int j=0; j<i; j++) { if (a[i] > a[j]) temp[i] = max(temp[j], temp[i] + 1) 】 maxLen = max(maxLen, temp[i]); return maxLen;}
三. 求两个字符串的最长的连续公共子串
#include <stdio.h> #include <stdlib.h> #include <string.h> //求公共子串(连续),注意跟求公共子序列有区别 int lcstr( const char* s1,const char* s2) { //clen保存公共子串的最大长度,s1_Mindex保存 s1公共子串的最后一个元素的位置 int len1,len2,i,k,cLen=1,s1_Mindex=0; int **c; if(s1==NULL || s2==NULL) return -1; len1=strlen(s1); len2=strlen(s2); if(len1< 1 || len2 < 1) return -1; c=malloc(sizeof(int*)*len1); for(i=0;i<len1;i++) { c[i]=(int *)malloc(len2*sizeof(int)); memset(c[i],0,len2*sizeof(int)); } /**********init end!*************/ for(i=0;i<len1;i++) { for(k=0;k<len2;k++) { if(i==0 || k==0) { if(s1[i]==s2[k]) c[i][k]=1; else c[i][k]=0; } else { if (s1[i] == s2[k]) { c[i][k] = c[i - 1][k - 1] + 1; if (cLen < c[i][k]) { cLen = c[i][k]; s1_Mindex = i; } } } } } \ // printf the one of lcs 只是其中一条,如果存在多条。 for(i=0;i<cLen;i++) { printf("%c",*(s1+s1_Mindex-cLen+1+i)); } /*****free array*************/ for(i=0;i<len1;i++) free(c[i]); free(c); return cLen; } int main(void) { char a[]="abcgooglecba"; char b[]="cbagoogleABVC"; printf("\nlcstr = %d\n",lcstr(a,b)); return 0; }
http://www.cnblogs.com/xwdreamer/archive/2011/06/21/2296995.html
0 0
- 【面试】一系列 动态规划
- 面试经典动态规划问题
- 程序员面试----动态规划法的应用
- 面试会考的动态规划DP总结
- 面试会考的动态规划DP总结
- 高效面试之动态规划DP
- 算法面试---01背包问题---动态规划
- [面试算法] 动态规划问题大杂烩
- 动态规划!!!动态规划!!!
- 【面试编程题】6-动态规划类题
- 微软面试百题003(归并排序/动态规划)
- 面试经典动态规划,n个相同火柴分堆
- 《面试--动态规划》 ---五种经典的算法问题
- 《程序员代码面试指南》第四章 递归和动态规划
- 整理的一系列面试经历和面试题
- 动态规划
- 动态规划
- 动态规划
- JSTL
- 在命令行编译和调试Swift程序
- 语法分析程序
- 《机器学习实战》之K-近邻算法
- linux下Oracle11g RAC搭建(八)
- 【面试】一系列 动态规划
- TCP和Http的区别!(转)
- 两个栈实现一个队列——C++ 利用STL 栈stack实现
- 部署DenyHosts防SSH暴力破解
- 【sublime test2 2.02】如何中文显示
- 图片放大最后的一点理解
- 【翻译】Android Support Library(一)
- 路由器密码恢复
- xml