leetcode_数据结构_入门_118. 杨辉三角
118. 杨辉三角
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
方法一:数学
思路及解法
杨辉三角,是二项式系数在三角形中的一种几何排列。
它是中国古代数学的杰出研究成果之一,
它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。
复杂度分析
时间复杂度:O(numRows 2次方)。
空间复杂度:O(1)。不考虑返回值的空间占用。
main函数
package DataStructure_start; import java.util.ArrayList; import java.util.List; public class DS20230128 { public static void main(String[] args) { List generate = generate(6); System.out.println(generate); } }
generate
public static List<List<Integer>> generate(int numRows) { // 封装到包装类里 List<List<Integer>> ret = new ArrayList<List<Integer>>(); for (int i = 0; i < numRows; ++i) { // 将元素放在 List集合 里 List<Integer> row = new ArrayList<Integer>(); for (int j = 0; j <= i; ++j) { //每一行的第一列(左侧)或 行等于列(右侧) 时 if (j == 0 || j == i) { //添加元素 1 row.add(1); } else { //添加元素 左上角 + 右上角 的和 row.add(ret.get(i - 1).get(j - 1) + ret.get(i - 1).get(j)); } } // 添加一整行 ret.add(row); } return ret; }
补充:
包装类:
Java是一个面向对象的编程语言,但是Java中的八种基本数据类型却是不面向对象的,
为了使用方便和解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,
这样八种基本数据类型对应的类统称为包装类(Wrapper Class),
包装类均位于java.lang包。
valueOf:
public static Integer valueOf(int i) {
assert IntegerCache.high>= 127;
if (i >= IntegerCache.low&& i <= IntegerCache.high)
return IntegerCache.cache[i+ (-IntegerCache.low)];
return new Integer(i);
}
List:
Collection主要有三个子接口,分别为List(列表)、Set(集)、Queue(队列)。
其中,List、Queue中的元素有序可重复,而Set中的元素无序不可重复。
在Collection中,
List集合是有序的,可对其中每个元素的插入位置进行精确地控制,可以通过索引来访问元素,遍历元素。
在List集合中,我们常用到ArrayList和LinkedList这两个类。
ArrayList
1,ArrayList底层通过数组实现,随着元素的增加而动态扩容。
2,ArrayList是Java集合框架中使用最多的一个类,是一个数组队列,线程不安全集合。
特点:
容量不固定,随着容量的增加而动态扩容(阈值基本不会达到)
有序集合(插入的顺序==输出的顺序)
插入的元素可以为null
增删改查效率更高(相对于LinkedList来说)
线程不安全
参考:
作者:LeetCode-Solution
链接:https://leetcode.cn/problems/pascals-triangle/solution/yang-hui-san-jiao-by-leetcode-solution-lew9/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了