1. 程式人生 > >[Swift Weekly Contest 118]LeetCode976. 三角形的最大周長 | Largest Perimeter Triangle

[Swift Weekly Contest 118]LeetCode976. 三角形的最大周長 | Largest Perimeter Triangle

Given an array A of positive lengths, return the largest perimeter of a triangle with non-zero area, formed from 3 of these lengths.

If it is impossible to form any triangle of non-zero area, return 0

Example 1:

Input: [2,1,2]
Output: 5

Example 2:

Input: [1,2,1]
Output: 0

Example 3:

Input: [3,2,3,4]
Output: 10

Example 4:

Input: [3,6,2,3]
Output: 8 

Note:

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

給定由一些正數(代表長度)組成的陣列 A,返回由其中三個長度組成的、面積不為零的三角形的最大周長。

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

示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

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

提示:

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

324ms

 

 1 class Solution {
 2     func largestPerimeter(_ A: [Int]) -> Int {        
3 var A = A.sorted(by:<) 4 var n = A.count 5 for i in stride(from:n-3,through:0,by:-1) 6 { 7 if A[i] + A[i+1] > A[i+2] 8 { 9 return A[i] + A[i+1] + A[i+2] 10 } 11 } 12 return 0 13 } 14 }