[LeetCode] 976. Largest Perimeter Triangle 最大周長的三角形

2021-02-21 刷盡天下

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:

3<=A.length<=10000

1<=A[i]<=10^6

這道題給了個正整數數組,讓從中選三個數當作三角形的三條邊,問能組成的三角形的最大周長是多少。因為要組成三角形,所以必須要滿足兩邊之和大於第三邊這一條性質,我們並不用去檢測所有的組合情況,而是只要判斷較短的兩邊之和是否大於最長的那條邊就可以了。雖然這道是 Easy 題目,但是 OJ 仍然不讓用暴力搜索法,遍歷任意三條邊是會超時的。所以只能想優化的解法,既然要周長最長,則肯定是選較大的數字先測比較好。這裡就先給數組排個序,然後從末尾開始,每次取出三個數字,先檢測能否組成三角形,可以的話直接返回周長,不行的話就繼續往前取,若都不行的話,就返回0,參見代碼如下:

class Solution {public:    int largestPerimeter(vector<int>& A) {        sort(A.begin(), A.end());        for (int i = (int)A.size() - 1; i >= 2; --i) {            if (A[i] < A[i - 1] + A[i - 2]) {                return A[i] + A[i - 1] + A[i - 2];            }        }        return 0;    }};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/976

類似題目:

Largest Triangle Area

參考資料:

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

https://leetcode.com/problems/largest-perimeter-triangle/discuss/217972/C%2B%2B-4-lines-O(n-log-n)

https://leetcode.com/problems/largest-perimeter-triangle/discuss/217988/JavaC%2B%2BPython-Sort-and-Try-Biggest

LeetCode All in One 題目講解匯總(持續更新中...)

相關焦點

  • LeetCode刷題第三周【數組(簡單)】
    至少是其他數字兩倍的最大數(難度:簡單)Oct.29 刷題請點擊或見附錄:747. 至少是其他數字兩倍的最大數[4]題目要求:在一個給定的數組nums中,總是存在一個最大元素 。查找數組中的最大元素是否至少是數組中每個其他數字的兩倍。
  • leetcode - 可以形成最大正方形的矩形數目
    例如,矩形 [4,6]可以切成邊長最大為 4的正方形。設 maxLen 為可以從矩形數組  rectangles 切分得到的 最大正方形 的邊長。返回可以切出邊長為 maxLen 的正方形的矩形 數目 。
  • 如何證明:「等底等高的三角形中,等腰三角形的周長最短」
    在等底等高的三角形中,以等腰三角形的周長最短. 如何證明?如下圖,兩直線m∥n,點A在直線a上,點B和C在直線b上,△ABC是等腰三角形,AB=AC,點D是直線a上任意一點(A、D不重合).求證:△ABC的周長一定小於△DBC的周長.
  • LeetCode-1732.找到最高海拔(Find the Highest Altitude)
    提示:n == gain.length1 <= n <= 100-100 <= gain[i] <= 100來源:力扣(LeetCode)連結:https://leetcode-cn.com/problems/find-the-highest-altitudeLink:
  • C語言 | 求圓周長 面積 表面積 體積
    例47:C語言編程求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。解題思路:就是簡單的數學公式套用,圓周長公式=2πr,圓面積=πr²,圓球表面積=4πr²,圓球體積=4πR³ /3,圓柱體積=πr²h。
  • ​LeetCode刷題實戰53:最大子序和
    今天和大家聊的問題叫做 最大子序和,我們先來看題面:https://leetcode-cn.com/problems/maximum-subarray/Given an integer array nums, find the contiguous subarray (containing at least one number
  • 九年級數學,二次函數中三角形周長的最值問題,解題思路很重要
    (2)由拋物線的對稱性可得AM=BM,點A(1,0),由三角形CAM周長=CA+AM+CM=根號10+BM+CM,則點B,點M,點C三點共線時,BM+CM有最小值為BC的長,即四邊形COAM周長的最小值=根號10+BC,由勾股定理可求解.
  • Trikonasana(Triangle Pose)三角式(中英文)
    The three angels(trikonas in sanskrit)of a triangle make it one of the strongest
  • 最大子序和(Maximum Subarray)
    Maximum Subarray給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。示例:輸入: [-2,1,-3,4,-1,2,1,-5,4]輸出: 6解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6。
  • 小升初數學:三角形與扇形複合圖形的周長與面積經典題解析
    如圖,△ABC是正三角形,曲線CDEF叫做正三角形ABC的漸開線,其中A,B,C分別為圓心,如果△ABC的邊長等於2cm,此時△ABC的面積約等於1.73平方釐米,求該圖形CDEF的周長和面積。分析:因為△ABC是正三角形(即等邊三角形),所以AC=BC=AB=2cm。
  • 求三角形周長的二次函數最值問題
    構建三角形周長的二次函數最值模型例題:如圖,已知拋物線y=−x2
  • 八年級數學,三角形周長的最小值,這三種類型的問題你都會了嗎
    求三角形周長的最小值即求三角形三邊長的最小值,三邊中可能有一條邊的長度保持不變,兩條邊的長度改變,也有可能三條邊的長度都發生變化。求線段之和的最小值,一般可以轉化為將軍飲馬模型,通過作對稱點結合勾股定理、等面積法等相關知識點進行解題。
  • 「Python」每日一練:設計圓類計算周長和面積、設計動物類
    編程題1、設計一個 Circle(圓)類,包括半徑和顏色屬性,編寫構造方法和其他方法,計算圓的周長和面積。請編寫程序驗證類的功能。2、設計一個 Animal(動物)類,包括顏色屬性和叫方法。編程實現1、設計一個圓類,計算圓的周長和面積#!
  • 九年級上學期,三角形內切圓半徑的推導,與面積、周長相關
    本篇文章主要介紹三角形內切圓半徑的推導過程,三角形內切圓的半角與三角形的周長和面積相關。我們首先要知道三角形的內心是如何確定的,三角形的內心是三個角角平分線的交點,內心到三角形三邊的距離相等,那麼怎麼得到一般三角形內切圓的半徑呢?
  • 2.三角形的內角和與外角和
  • 中考數學壓軸題,動點形成的三角形周長最小值,解題的關鍵是這
    下面就來解析下動點形成的三角形周長最小值,提煉解析技巧。待定係數法求函數解析式,這是中考必考內容。(1)將三個點的坐標代入,求出a、b、c,即可求出關係式。(2)可以求出點Q(4,y2)關於對稱軸的對稱點的橫坐標為:x=﹣2,根據函數的增減性,可以求出當y1≤y2時P點橫坐標x1的取值範圍。
  • 2020年小升初:平行四邊形面積與三角形周長知識點總結與命題方向
    二.三角形的周長和面積三角形的周長等於三邊長度之和.三角形面積=底×高÷2.例1: 4個完全相同的正方形拼成一個長方形.(如圖)圖中陰影三角形的面積的大小是A、甲>乙>丙 B、乙>甲>丙C、丙>甲>乙 D、甲=乙=丙分析:因為三角形的面積=底×高÷2,且圖中三個陰影三角形等底等高,所以圖中陰影三角形的面積都相等.
  • 高考數學,橢圓中三角形周長最大值問題,定義的應用是重點
    高考數學,橢圓中三角形周長最大值問題,定義的應用是重點。題目內容:橢圓x^2/a^2 +y^2/5=1(a為定值,且a>√5)的左焦點為F,直線x=m與橢圓相交於點A、B,△FAB的周長的最大值是12,則該橢圓的離心率是。