题解 | #三角形最小路径和#
三角形最小路径和
https://www.nowcoder.com/practice/c9d44b73dc7c4dbfa4272224b1f9b42c
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param triangle int整型二维数组 * @param triangleRowLen int triangle数组行数 * @param triangleColLen int* triangle数组列数 * @return int整型 */ int min(const int a,const int b){ return a<b?a:b; } int minTrace(int** triangle, int triangleRowLen, int* triangleColLen ) { // write code here if(triangleRowLen==1) return triangle[0][0] ; triangle[1][0]=triangle[1][0]+triangle[0][0]; triangle[1][1]=triangle[0][0]+triangle[1][1]; for(int i=2;i<triangleRowLen;i++){ for(int j=0;j<=i;j++){ if(j==0){ triangle[i][j]=triangle[i-1][j]+triangle[i][j]; }else if(j==i){ triangle[i][j]=triangle[i-1][j-1]+triangle[i][j]; }else{ triangle[i][j]=min(triangle[i-1][j]+triangle[i][j],triangle[i-1][j-1]+triangle[i][j]); } } } int Min=triangle[triangleRowLen-1][0]; for(int i=0;i<triangleRowLen;i++){ if(triangle[triangleRowLen-1][i]<Min) Min=triangle[triangleRowLen-1][i]; } return Min; }