给定一个非负索引 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循环表示出来即可解决