对于下面的代码,我收到错误“第 12 行:变量 sblst 已在方法生成(int)中定义”。我尝试修改下面的代码,当我使用不同的名称声明第二个和第三个列表时,我没有收到错误。我是java新手,不明白这里发生了什么。我的问题是,在 while 循环中,列表被声明多次,但没有收到相同的错误。
class Solution {
public List<List<Integer>> generate(int numRows) {
if(numRows==0) return new ArrayList<List<Integer>>(0);
List<List<Integer>> lst = new ArrayList<List<Integer>>(); //check list
List<Integer> sblst = new ArrayList<Integer>();
if(numRows>=1) sblst.add(1); lst.add(sblst); //i=0
if(numRows==1) return lst;
List<Integer> sblst = new ArrayList<Integer>();
if(numRows>=2) sblst.add(1); sblst.add(1); lst.add(sblst); //i=1
if(numRows==2) return lst;
int i=2;
while(i<numRows){
List<Integer> sblst = new ArrayList<Integer>(0);
sblst.add(1);
int j=1;
while(j<i){
int element = lst.get(i-1).get(j-1)+lst.get(i-1).get(j) ;
sblst.add(element);
j++;
}
sblst.add(1);
lst.add(sblst);
i++;
}
return lst;
}
}
最佳答案
在一个方法中,您指定 sblst
两次:
List<Integer> sblst = new ArrayList<Integer>(0);
如果您确实需要两个列表,则应重命名其中一个。
关于java - 错误: variable sblst is already defined in method generate(int) but no error for ForLoop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50435404/