企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
~~~ int ** lcsLength(int *x,int *y,int m,int n){ int b[m][n],c[m][n]; for(int i=0;i<m;i++) for(int j=0;j<n;j++) b[i][j]=0; for(int i=0;i<m;i++) for(int j=0;j<n;j++) c[i][j]=0; for(int i=1;i<m;i++) c[i][0] = 0; for(int j=0;j<n;j++) c[0][j] = 0; for(int i=1;i<m;i++){ for(int j=1;j<n;j++){ if(x[i]==y[j]){ c[i][j] = c[i-1][j-1] + 1; b[i][j] = 1; } else if(c[i-1][j]>c[i][j-1]){ c[i][j] = c[i-1][j]; b[i][j] = 2; } else { c[i][j] = c[i][j-1]; b[i][j] = -1; } } } int **a = new int*[m]; for(int i=0;i<m;i++){ a[i] = new int[n]; for(int j=0;j<n;j++){ a[i][j] = b[i][j]; } } return a; } void printLCS(int **b,int *x,int i,int j){ if(i==0||j==0) return; if(b[i][j]==1){ printLCS(b,x,i-1,j-1); cout<<x[i]<<"\t"; } else if(b[i][j]==2) printLCS(b,x,i-1,j); else printLCS(b,x,i,j-1); } ~~~