LeetCode做题笔记第118题:杨辉三角

Posted 李公子lm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode做题笔记第118题:杨辉三角相关的知识,希望对你有一定的参考价值。

题目描述

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。

实例:
在这里插入图片描述

解题思路

首先分析题目可知,第i行是有i个元素,且每个元素的值,假设下标为index,则元素值为上一行的index-1位置和index位置的元素和。举例第五行第2个元素4,下标为1,则其等于第四行第1-1=0位置元素1和1位置的元素3之和。

双层for循环。

完整代码

 class Program
    {
        static void Main(string[] args)
        {
            var result = Generate(5);
            Console.ReadKey();
        }
        /// <summary>
        /// 118.杨辉三角
        /// </summary>
        /// <param name="numRows"></param>
        /// <returns></returns>
        public static IList<IList<int>> Generate(int numRows)
        {
            IList<IList<int>> result = new List<IList<int>>();
            result.Add(new List<int> { 1 });
            if (numRows > 1)
            {
                for (int i = 1; i < numRows; i++)
                {
                    IList<int> list = new List<int>();
                    for (int j = 0; j <= i; j++)
                    {
                        int left = 0;
                        int right = 0;
                        if (j - 1 >= 0)
                        {
                            left = result[i - 1][j - 1];
                        }
                        if (j <= result[i - 1].Count - 1)
                        {
                            right = result[i - 1][j];
                        }
                        int number = left + right;
                        list.Add(number);
                    }
                    result.Add(list);
                }
            }
            return result;
        }
    }

以上是关于LeetCode做题笔记第118题:杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode:118.杨辉三角面试题 17.01. 不用加号的加法

刷题笔记(数组)-07

LeetCode与《代码随想录》链表篇:做题笔记与总结-JavaScript版

LeetCode做题笔记第125题:验证回文串

LeetCode做题笔记第168题:Excel表列名称

LeetCode做题笔记第168题:Excel表列名称