Keshawn_lu's Blog

Leetcode 976. 三角形的最大周长

字数统计: 236阅读时长: 1 min
2020/11/29 Share

题目简介:

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

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

示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

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

提示:

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

思路:

先进行排序,然后从大到小的进行遍历,若不满足两边之和大于第三边的条件时,则继续遍历,否则返回答案。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public:
int largestPerimeter(vector<int>& A) {

sort(A.begin(), A.end());

int pos = A.size() - 1;
while(pos >= 2){

if(A[pos - 1] + A[pos - 2] > A[pos])
return (A[pos] + A[pos - 1] + A[pos - 2]);
else
pos--;
}
return 0;
}
};
CATALOG
  1. 1. 题目简介:
  2. 2. 思路:
  3. 3. 代码如下: