LeetCode 976 三角形的最大周長

2021-10-02 12:15:37 字數 653 閱讀 1274

給定由一些正數(代表長度)組成的陣列 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

假設三角形的邊長滿足 a≤b≤c。那麼這三條邊組成三角形的面積非零的充分必要條件是 a+b>c。

再假設我們已經知道 c 的長度了,我們沒有理由不從陣列中選擇盡可能大的 a 與 b。因為當且僅當 a+b>c 的時候,它們才能組成乙個三角形。

思路:根據三角形成立的條件,三條邊互相滿足 a + b > c;

也就是說,影響三角形不成立的條件即是c邊過長。

所以可以將陣列排序,從大到小遍歷最後三個元素看是否滿足三角形成立條件。

滿足即返回,不滿足,繼續遍歷。

class

solution

}

LeetCode 976 三角形最大周長

組成三角形的充要條件 a b c。將a排序後,為了使周長最大,肯定是從後往前取,從最後一位c開始,依次判斷前兩位的數a,b之和是否比它大,只要滿足,那a c b和b c a又一定成立 c已經大於a b了 則abc可以構成三角形,且此時周長最大 如果不能滿足,就繼續往前找,直到找完所有a中元素。cla...

LeetCode 976 三角形的最大周長

寫在前面 水題 1,其實可以用預設排序,然後遍歷的時候逆序遍歷。我特意把排序倒過來寫的,算是複習一把c 和js自帶排序如何使用 其實是查出來的,我又忘了 c class solution js param a return var largestperimeter function a a.sort...

leeetCode 976 三角形的最大周長

給定由一些正數 代表長度 組成的陣列 a,返回由其中三個長度組成的 面積不為零的三角形的最大周長。如果不能形成任何面積不為零的三角形,返回 0。示例 1 輸入 2,1,2 輸出 5思路 假設三角形三邊滿足a b c,則 a b c,因此可以列舉最長邊c,從貪心角度考慮一定是小於最長邊c的最大的兩個數...