leetcode做题笔记119. 杨辉三角 II

给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

思路一:模拟题意

int* getRow(int rowIndex, int* returnSize){
    int* ret = malloc(sizeof(int)*(rowIndex+1));
    ret[0] = 1;
    *returnSize = rowIndex+1;
    if(rowIndex==0)return ret;
    int i,j;
    for(i=0;i<=rowIndex;i++){
        ret[i]=1;
        for(j=i-1;j>=1;j--){
            ret[j]=ret[j]+ret[j-1];
        }
    }
    return ret;

}

分析:

本题要求第rowindex行的所有杨辉三角数,可想到第rowindex行第i个数为从第一行开始不断向下求得出,即可以用一个for循环模拟这个过程,不断用ret[j]+ret[j-1]模拟上一行相同位置和前一位的数之和,最后输出ret

总结:

本题考察对题目的理解,将数用for循环表示出来即可解决

你可能感兴趣的:(数组的应用,leetcode,笔记,算法)