怎样理解初始化部分(为什么默认左子树为空就能完成初始化?)
查看原帖
怎样理解初始化部分(为什么默认左子树为空就能完成初始化?)
504142
micmic楼主2022/5/5 09:41
	for(int len=1;len<n;len++){
		//枚举长度 
		for(int i=1;i+len<=n;i++){
			//枚举起始位置 
			int j=i+len;
			dp[i][j]=dp[i+1][j]+dp[i][i];  //默认左子树为null
			root[i][j]=i;	//默认从起点选根
			
			for(int k=i+1;k<j;k++){
				if(dp[i][j]<dp[i][k-1]*dp[k+1][j]+dp[k][k]){
					dp[i][j]=dp[i][k-1]*dp[k+1][j]+dp[k][k];
					root[i][j]=k;
				}
			} 
		} 
	} 
2022/5/5 09:41
加载中...