LeetCode118 Pascal's Triangle

来源:互联网 发布:淘宝产品推广方案 编辑:程序博客网 时间:2024/05/16 03:45

详细见:leetcode.com/problems/pascals-triangle


Java Solution: github

package leetcode;import java.util.ArrayList;import java.util.Iterator;/* * Given numRows, generate the first numRows of Pascal's triangle.For example, given numRows = 5,Return[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]] */import java.util.LinkedList;import java.util.List;public class P118_PascalsTriangle {public static void main(String[] args) {List<List<Integer>> ans = null;Solution s = new Solution();ans = s.generate(3);Iterator<List<Integer>> it = ans.iterator();while (it.hasNext()) {tools.Utils.B_打印List_Integer_OneLine(it.next());}}static class Solution {List<List<Integer>> ans = new LinkedList<>();    public List<List<Integer>> generate(int numRows) {    if (numRows <= 0) {    return ans;    }    List<Integer> pre_list = new ArrayList<Integer>(1);    pre_list.add(1);    ans.add(pre_list);    for (int row = 1; row < numRows; row ++) {    List<Integer> this_list = new ArrayList<Integer>(row);    this_list.add(1);    for (int i = 1; i < row; i ++) {    this_list.add(pre_list.get(i - 1) + pre_list.get(i));    }    this_list.add(1);    ans.add(this_list);    pre_list = this_list;    }        return ans;    }}}


C Solution: github

/*    url: leetcode.com/problems/pascals-triangle    AC 3ms 2.35%*/int** generate(int rn, int** cn) {    int i = 0, j = 0, k = 0;    int** ans = (int**) malloc(sizeof(int*) * rn);    *cn = (int*) malloc(sizeof(int) * rn);    for (i = 0; i < rn; i ++) {        (*cn)[i] = i+1;        ans[i] = (int*) malloc(sizeof(int) * (i+1));        for (j = 0; j < i+1; j ++) {            ans[i][0] = 1;            ans[i][i] = 1;            for (k = 1; k < i; k ++)                ans[i][k] = ans[i-1][k-1] + ans[i-1][k];        }    }    return ans;}


Python Solution: github

#coding=utf-8'''    url: leetcode.com/problems/pascals-triangle    @author:     zxwtry    @email:      zxwtry@qq.com    @date:       2017年5月4日    @details:    Solution:  55ms 23.05%'''class Solution(object):    def generate(self, n):        """        :type n: int        :rtype: List[List[int]]        """        a = [[1]*(i+1) for i in range(n)]        for i in range(2, n):            for j in range(1, i):                a[i][j] = a[i-1][j-1]+a[i-1][j]        return a


0 0
原创粉丝点击