当前位置: 首页 > 后端技术 > Java

LeetCode-120-TriangleMinimumPathand

时间:2023-04-01 22:33:50 Java

TriangleMinimumPathandProblemDescription:给定一个三角形三角形,求从上到下的最小路径和。每一步只能移动到下一行的相邻节点。这里的相邻节点指的是下标与前一个节点的下标相同或者等于前一个节点的下标+1的两个节点。即如果在当前行的下标i处,那么下一步可以移动到下一行的下标i或i+1。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。解法1:动态规划用一个数组记录到每一层节点的最小路径和,那么动态规划的过程有如下依据:每一层的第一个节点只能被上一层的第一个节点访问层。节点到达;每一层的第2~size-1个节点可以从相同的位置或者上一层的前一个位置到达,取小者;每一层的最后一个节点只能被前一层的最后一个节点到达。最后将最小路径和返回给最后一层节点。importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;publicclassLeetCode_120{/***动态规划**@paramtriangle*@return*/publicstaticintminimumTotal(List>triangle){//记录每一层每个节点的路径总和,初始化为0int[]result=newint[triangle.size()];for(Listintegers:triangle){//记录当前层各节点的路径之和,初始化为0int[]cur=newint[triangle.size()];//每一层的第一个节点只能是一个层的第一个节点到达cur[0]=result[0]+integers.get(0);整数索引;for(index=1;index>triangle=newArrayList<>();Listone=newArrayList<>();一个.add(2);三角形.add(一);List二=newArrayList<>();二.加(3);二.添加(4);三角形.add(二);List三=newArrayList<>();三。添加(6);三.添加(5);三.添加(7);三角形.add(三);Listfour=newArrayList<>();四.添加(4);四.添加(1);四.添加(8);四.添加(3);三角.add(4);System.out.println(minimumTotal(三角形));把它当做一种投资,一种对未来的投资,你以后会有舒服的自由