Ошибка: переменная sblst уже определена в методе generate (int), но нет ошибки для ForLoop - PullRequest
0 голосов
/ 20 мая 2018

Я получаю сообщение об ошибке «Строка 12: переменная sblst уже определена в методе generate (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;
    }
    }

1 Ответ

0 голосов
/ 20 мая 2018

В одном методе вы дважды делаете sblst:

List<Integer> sblst = new ArrayList<Integer>(0); 

Если вам нужны два списка, вы должны переименовать один из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...