Leetcode 119) Pascal’s Triangle II

image

class Solution {
    public List<Integer> getRow(int rowIndex) {
        if(rowIndex <=1){
            List<Integer> num = new ArrayList<Integer>();
            for(int i=0;i<rowIndex+1;i++){
                num.add(1);
            }
            return num;
        }
        List<Integer> prev = new ArrayList<Integer>();
        prev.add(1);
        prev.add(1);
        int hmm=1;
        while(hmm<=rowIndex+1 ){
            List<Integer> num = new ArrayList<Integer>();
            for(int i=0;i<hmm;i++){
                if(i==0){
                    num.add(1);
                }else if(i==hmm-1){                               
                    num.add(1);
                    prev.clear();
                    for(int p : num) {
                        prev.add(p);
                    }
                }else{
                    int val= prev.get(i) + prev.get(i-1);
                    num.add(val);
                }
            }
            hmm++;
        }
        return prev;
    }
}

다른 풀이

class Solution {
    public List<Integer> getRow(int rowIndex) {
    List<List<Integer>> result = new ArrayList<>();
    result.add(Collections.singletonList(1));
    for (int i = 1; i < rowIndex + 1; i++) {
      List<Integer> ans = new ArrayList<>();
      ans.add(1);
      List<Integer> prev = result.get(i - 1);
      for (int j = 1; j < i; j++) {
        ans.add(prev.get(j - 1) + prev.get(j));
      }
      ans.add(1);
      result.add(ans);
    }
    return result.get(rowIndex);    
    }
}

© 2018. All rights reserved.

Powered by Hydejack v8.5.2