m*n
2 楼
Given a triangle, find the minimum path sum from top to bottom. Each step
you may move to adjacent numbers on the row below.
For example, given the following triangle
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).
public class Solution {
int min=Integer.MAX_VALUE;
public int minimumTotal(ArrayList> triangle) {
// Start typing your Java solution below
// DO NOT write main() function
if(triangle.size()==0) return 0;
return dfs(triangle,1,triangle.get(0).get(0),0);
}
public int dfs(ArrayList> t,int l,int sum,int i) {
if(l==t.size()) return sum;
int left=dfs(t,l+1,sum+t.get(l).get(i),i);
min=left int right=dfs(t,l+1,sum+t.get(l).get(i+1),i+1);
min=right return min;
//return left }
}
刚开始我是想用一个global min去记录最小值然后最后返回。可是这个一直没通过一个
test case:[[-1],[2,3],[1,-1,-3]]
它说我输出-4,应该是-1。然后我就查了半天,不知道怎么会输出-4,然后我自己run了
一下给的相同的test input,结果输出的是-1.。。。。搞不懂怎么oj说我输出-4
后来发现根本没必要这个min变量,可以直接return left和right中最小的,然后通过
了小test case.
我没发现有min和没min本质上的不同。
请教各位大神。谢谢
you may move to adjacent numbers on the row below.
For example, given the following triangle
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]
The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).
public class Solution {
int min=Integer.MAX_VALUE;
public int minimumTotal(ArrayList
// Start typing your Java solution below
// DO NOT write main() function
if(triangle.size()==0) return 0;
return dfs(triangle,1,triangle.get(0).get(0),0);
}
public int dfs(ArrayList
if(l==t.size()) return sum;
int left=dfs(t,l+1,sum+t.get(l).get(i),i);
min=left
min=right
//return left
}
刚开始我是想用一个global min去记录最小值然后最后返回。可是这个一直没通过一个
test case:[[-1],[2,3],[1,-1,-3]]
它说我输出-4,应该是-1。然后我就查了半天,不知道怎么会输出-4,然后我自己run了
一下给的相同的test input,结果输出的是-1.。。。。搞不懂怎么oj说我输出-4
后来发现根本没必要这个min变量,可以直接return left和right中最小的,然后通过
了小test case.
我没发现有min和没min本质上的不同。
请教各位大神。谢谢
m*0
3 楼
我的EB2 PD:1/11/2013, 485 Received Date: July 2015.
现在EB3 current了。我有必要降级么?还是继续等?
谢谢
现在EB3 current了。我有必要降级么?还是继续等?
谢谢
g*o
5 楼
leetcode不是每次都重新创建对象
public class Solution {
int min=Integer.MAX_VALUE;
public int minimumTotal(ArrayList> triangle) {
// Start typing your Java solution below
// DO NOT write main() function
min=Integer.MAX_VALUE;//add this line
if(triangle.size()==0) return 0;
return dfs(triangle,1,triangle.get(0).get(0),0);
}
public int dfs(ArrayList> t,int l,int sum,int i) {
if(l==t.size()) return sum;
int left=dfs(t,l+1,sum+t.get(l).get(i),i);
min=left int right=dfs(t,l+1,sum+t.get(l).get(i+1),i+1);
min=right return min;
//return left }
}
public class Solution {
int min=Integer.MAX_VALUE;
public int minimumTotal(ArrayList
// Start typing your Java solution below
// DO NOT write main() function
min=Integer.MAX_VALUE;//add this line
if(triangle.size()==0) return 0;
return dfs(triangle,1,triangle.get(0).get(0),0);
}
public int dfs(ArrayList
if(l==t.size()) return sum;
int left=dfs(t,l+1,sum+t.get(l).get(i),i);
min=left
min=right
//return left
}
S*o
6 楼
看你的具体情况,如果工作稳定,也不急着用卡,等等也无所谓。要是想早拿卡将级应
该会快很多。
该会快很多。
l*d
7 楼
漏了各个学校的bookstore,大多有ipad,但货一般不多。
E*m
8 楼
你這個時間會超過, 必須用 DP 才行。
【在 g****o 的大作中提到】
: leetcode不是每次都重新创建对象
: public class Solution {
: int min=Integer.MAX_VALUE;
: public int minimumTotal(ArrayList> triangle) {
: // Start typing your Java solution below
: // DO NOT write main() function
: min=Integer.MAX_VALUE;//add this line
: if(triangle.size()==0) return 0;
: return dfs(triangle,1,triangle.get(0).get(0),0);
: }
【在 g****o 的大作中提到】
: leetcode不是每次都重新创建对象
: public class Solution {
: int min=Integer.MAX_VALUE;
: public int minimumTotal(ArrayList
: // Start typing your Java solution below
: // DO NOT write main() function
: min=Integer.MAX_VALUE;//add this line
: if(triangle.size()==0) return 0;
: return dfs(triangle,1,triangle.get(0).get(0),0);
: }
E*m
10 楼
DP 很容易寫
public class Solution {
public int minimumTotal(ArrayList> triangle) {
// Start typing your Java solution below
// DO NOT write main() function
int[] sum=new int[triangle.size()];
for (int i=0;i sum[i]=triangle.get(triangle.size()-1).get(i);
for (int i=triangle.size()-2;i>=0;i--){
ArrayList cur=triangle.get(i);
for (int j=0;j<=i;j++)
sum[j]=cur.get(j)+Math.min(sum[j], sum[j+1]);
}
return sum[0];
}
}
public class Solution {
public int minimumTotal(ArrayList
// Start typing your Java solution below
// DO NOT write main() function
int[] sum=new int[triangle.size()];
for (int i=0;i
for (int i=triangle.size()-2;i>=0;i--){
ArrayList
for (int j=0;j<=i;j++)
sum[j]=cur.get(j)+Math.min(sum[j], sum[j+1]);
}
return sum[0];
}
}
p*6
11 楼
果断降级马上绿
c*d
12 楼
把 min=Integer.MAX_VALUE;加到minimumTotal开头。
我一般不用instance variable.
【在 m***n 的大作中提到】
: Given a triangle, find the minimum path sum from top to bottom. Each step
: you may move to adjacent numbers on the row below.
: For example, given the following triangle
: [
: [2],
: [3,4],
: [6,5,7],
: [4,1,8,3]
: ]
: The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).
我一般不用instance variable.
【在 m***n 的大作中提到】
: Given a triangle, find the minimum path sum from top to bottom. Each step
: you may move to adjacent numbers on the row below.
: For example, given the following triangle
: [
: [2],
: [3,4],
: [6,5,7],
: [4,1,8,3]
: ]
: The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).
相关阅读
(REF)体检可以在中国做吗?黑心律师降级居然要收6000J表填写问题关于485 pending 不到180天换工作EB-3 i140 Pending前几天收到485 approve的通知,今天又收到EAD approve的通知。请问485换工作地点的问题EB2 报绿是不是有EAD卡,就什么工作都能干了降级EB3有必要加急吗?EB3 这报绿好慢护照上明写着“出生地中国XX”,还需出生证明吗?这个SR是什么意思?H1B layoff, 两个月grace period马上用完了,求建议求推荐移民律师AOS 期间还能 转成 H1雇主WITHDRAW已经批准的I1403月7日绿卡寄出,现在还没收到正常吗?请问现在大家收到的485体检RFE要求多少天内回复?file485后能自己申请EAD和AP吗?其实要是抛开10月的inventory数据,只看4月和1月的就还make sense