Leetcode120三角形最小路径和给定一个三角形triangle,求自上而下的最小路径和。每一步只能移动到下一行的相邻节点。这里的相邻节点指的是下标与前一个节点的下标相同或者等于前一个节点的下标+1的两个节点。即如果在当前行的下标i处,那么下一步可以移动到下一行的下标i或i+1。答案:/**\*@param{number[][]}triangle\*@return{number}*/varminimumTotal=function(triangle){letpre=[0]while(triangle.length){letcurr=triangle.shift()letnewLen=[]curr.forEach((length,index)=>{if(index===0){newLen.push(pre[0]+length)}elseif(index===curr.length-1){newLen.push(pre[index-1]+length)}else{newLen.push(Math.min(pre[index-1],pre[index])+length)}})pre=newLen}returnMath.min(...pre)};我以为我的回答可能没有官方回答的快,但实际上,这个解决方案相比起来并不慢,而且很容易理解。第n行对应的路径为上一行index-1对应的值与index对应的值之间的最小值。请特别注意边界,它只能是一个固定值。这可以从上到下计算。最后得到末尾树的路径值之和对应的数组,取里面的最小值。
