LeetCode_杨辉三角_简单_118.杨辉三角
LeetCode 简单 杨辉三角 118
2023-09-27 14:25:46 时间
1.题目
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
提示:
1 <= numRows <= 30
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pascals-triangle
2.思路
(1)找规律
首先观察杨辉三角可以得到以下规律:杨辉三角两条腰上的值全部设置为1,并且杨辉三角中任意一个内部的值都等于与其上一行相邻的两个值之和。找到规律后,具体求解步骤如下:
① 定义 list 数组 res,用于保存结果;
② 进行 numRows 层 for 循环来分别求出 numRows 行的杨辉三角,并且需要定义 list 数组 tmpRes 用来保存每一行的结果,在求解过程中,需要分以下两种情况:
若当前值位于杨辉三角的腰上,那么设置为1;
若当前值位于杨辉三角的内部,那么该值等于与其上一行相邻的两个值之和;
③ 每求解出一行的值,就将 tmpRes 添加到 res 中;
④ 循环结束后,返回 res 即可。
3.代码实现(Java)
//思路1————找规律
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<List<Integer>>();
for (int i = 0; i < numRows; i++) {
//保存第i行的结果,此处是从i=0行开始
List<Integer> tmpRes = new ArrayList<Integer>();
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
//设置杨辉三角两条腰上的值,即全部设置为1
tmpRes.add(1);
} else {
//设置杨辉三角内部的值,任意一个内部的值都等于与其上一行相邻的两个值之和
tmpRes.add(res.get(i - 1).get(j) + res.get(i - 1).get(j - 1));
}
}
//将第i行的结果保存到res中
res.add(tmpRes);
}
return res;
}
}
相关文章
- Leetcode: Data Stream as Disjoint Intervals && Summary of TreeMap
- Leetcode: Palindrome Pairs
- 【Leetcode】169. 多数元素(简单)
- 【Leetcode】1299. 将每个元素替换为右侧最大元素(简单)
- 【Leetcode】237. 删除链表中的节点(简单)
- LeetCode左程云算法课笔记(整理ing)
- [LeetCode] Multiply Strings
- 60、【数组】leetcode——209. 长度最小的子数组-滑动窗口:最小窗口(C++、Python版本)
- LeetCode Merge Two Sorted Lists
- [LeetCode] 1309. Decrypt String from Alphabet to Integer Mapping 解码字母到整数映射
- [LeetCode] Remove Duplicate Letters 移除重复字母
- leetcode 530. Minimum Absolute Difference in BST二叉搜索树的最小绝对差 (简单)
- leetcode 206. Reverse Linked List 反转链表(简单)
- leetcode 409 Longest Palindrome 最长回文串(简单)
- leetcode 28. Implement strStr() 实现 strStr()(简单)
- leetcode 696. Count Binary Substrings 计数二进制子串(简单)
- leetcode 242. Valid Anagram 有效的字母异位词(简单)
- leetcode 697. Degree of an Array 数组的度(简单)
- leetcode 303. Range Sum Query - Immutable 区域和检索 - 数组不可变(简单)
- leetcode算法169.多数元素