public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<List<Integer>>();
        List<Integer> curr;
        List<Integer> prev = new ArrayList<Integer>();
        for(int i = 0; i < numRows; i++){
            curr = new ArrayList<Integer>();
            if(i > 0) prev = result.get(i - 1);
            for(int j = 0; j <= i; j++){
                if(j == 0 || j == i)
                    curr.add(1);
                else
                    curr.add(prev.get(j - 1) + prev.get(j));
            }
            result.add(curr);
        }
        return result;
    }