給定由一些正數(代表長度)組成的陣列 A,回傳由其中三個長度組成的、面積不為零的三角形的最大周長,如果不能形成任何面積不為零的三角形,回傳 0
解題思路
三條邊組成面積不為零的三角形的充分必要條件為 a + b > c,因此我們首先將陣列升序排序,從最后三個開始列舉,找出符合構成三角形的最大的三個數即可
class Solution {
public int largestPerimeter(int[] A) {
Arrays.sort(A);
int a = A.length - 3, b = A.length - 2, c = A.length - 1;
while(a >= 0) {
if(A[a] + A[b] > A[c]) {
return A[a] + A[b] + A[c];
}
a--;
b--;
c--;
}
return 0;
}
}
時間復雜度:O(NlogN),其中 N 是陣列 A 的長度
空間復雜度:O(logN)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/228735.html
標籤:其他
上一篇:0239. Sliding Window Maximum (H)
下一篇:買賣股票的最佳時機 II
