LeetCode面试系列 第10天:No.976 - 三角形的最大周长

简介: LeetCode面试系列 第10天:No.976 - 三角形的最大周长

今天要给大家分析的面试题是 LeetCode 上第 976 号问题,

LeetCode - 976. 三角形的最大周长

https://leetcode-cn.com/classic/problems/largest-perimeter-triangle/


题目描述


给定由一些正数(代表长度)组成的数组 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


题目难度:简单


通过次数:8.8K


提交次数:16.1K


贡献者:LeetCode

相关标签


https://leetcode-cn.com/tag/sort


数学


https://leetcode-cn.com/tag/math


排序

相似题目


最大三角形面积https://leetcode-cn.com/problems/largest-triangle-area  难度: 简单


解题思路:


我们知道,平面中构成三角形的充分必要条件是 3条边中任意两边之和大于第三边(3次比较),也即 较短的两边之和大于最长边即可(有序情形下只需1次比较)。而要求三角形的最大边长,也就是使得三边之长最大,当然是取最长的3个边长了。于是求解此题的具体步骤如下:


将数组 A 中的各边长度按从大到小排序


遍历排过序的数组中的数,取出相邻的 3 个边长,当第一次满足较短的两边之和大于最长边时,则对这3边求和返回即可。



临界情形: 输入的边数不到3个,直接 return 0.

已 AC 代码:











class Solution:    def largestPerimeter(self, A: List[int]) -> int:        if (len(A) < 3):            return 0
        A.sort(reverse=True)        for i in range(len(A)-2):            if A[i] < A[i+1] + A[i+2]:  # Can build a triangle                return A[i] + A[i+1] + A[i+2]        return 0

运行结果:

执行用时: 256 ms, 在所有 python3 提交中击败了 91.91 % 的用户.



image.png


示例代码: https://github.com/JustDoPython/leetcode-python/tree/master/leetcode-976

LeetCode面试系列:


第1天:Leetcode 89 - 格雷码

第2天:No.136 - 只出现一次的数

第3天:No.67 - 二进制数求和

第4天:No.202 - 快乐数

第5天:No.204 - 统计质数

第6天:No.9 - 回文数

第7天:No.13 - 罗马数字转整数

第8天:No.58 - 最后一个单词的长度

第9天:No.345 - 反转字符串中的元音字母

目录
相关文章
|
4月前
|
开发者 索引 Python
这些年背过的面试题——LeetCode
本文是技术人面试系列LeetCode篇,一文带你详细了解,欢迎收藏!
|
4月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
57 6
|
4月前
|
Python
【Leetcode刷题Python】120. 三角形最小路径和
LeetCode 120题 "三角形最小路径和" 的Python实现,使用动态规划算法找出从三角形顶部到底部的最小路径和。
23 0
|
4月前
|
Python
【Leetcode刷题Python】611. 有效三角形的个数
提供了解决LeetCode "有效三角形的个数" 问题的Python实现代码。
22 0
|
5月前
|
Python
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
155. 最小栈 力扣 python 空间换时间 o(1) 腾讯面试题
|
5月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
5月前
|
存储 算法
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
|
6月前
|
SQL 算法 大数据
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
深入解析力扣176题:第二高的薪水(子查询与LIMIT详解及模拟面试问答)
|
6月前
【LeetCode刷题】有效三角形个数、查找总价值为目标值的两个商品
【LeetCode刷题】有效三角形个数、查找总价值为目标值的两个商品