力扣118.杨辉三角

Posted 敖云岚

tags:

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

一、题目要求

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

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

链接位置:力扣https://leetcode.cn/problems/pascals-triangle/

二、思路分析 

三、代码实现

public static List<List<Integer>> generate(int numRows) 
        List<List<Integer>> list=new ArrayList<>();
        //行数
        for(int i=0;i<numRows;i++)
            List<Integer> list1=new ArrayList<>();
            if(i>=0&&i<=1)
                for(int j=0;j<=i;j++)
                    list1.add(1);
                
                list.add(list1);
            
            else
                list1.add(1);
                for(int j=1;j<=i-1;j++)
                    int num=list.get(i-1).get(j)+list.get(i-1).get(j-1);
                    list1.add(num);
                
                list1.add(1);
                list.add(list1);
            
        
        return list;
    

力扣(LeetCode)976. 三角形的最大周长

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。

如果不能形成任何面积不为零的三角形,返回 0。

示例 1:

输入:[2,1,2]
输出:5

示例 2:

输入:[1,2,1]
输出:0

示例 3:

输入:[3,2,3,4]
输出:10

示例 4:

输入:[3,6,2,3]
输出:8

提示:

3 <= A.length <= 10000
1 <= A[i] <= 10^6

思路 先将数组从小到大排序,然后从后往前遍历相邻最大的满足条件的三位数(三角形较小两边之和大于第三边)

Java版

class Solution {
    public int largestPerimeter(int[] A) {
        Arrays.sort(A);
        int max = 0;
        for(int i=A.length-1;i>=2;i--) {
            if(A[i-1]+A[i-2]>A[i]) {
                return A[i-1]+A[i-2]+A[i];
            }
        }
        return 0;
        
        
    }
}

运行结果

以上是关于力扣118.杨辉三角的主要内容,如果未能解决你的问题,请参考以下文章

leetcode算法118.杨辉三角

⭐算法入门⭐《递推 - 二维》简单01 —— LeetCode 118. 杨辉三角

⭐算法入门⭐《递推 - 二维》简单01 —— LeetCode 118. 杨辉三角

LeetCode118 杨辉三角

2021-10-09:杨辉三角。给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。力扣118。

杨辉三角_LeetCode