LeetCode|Day9|976. 三角形的最大周長|Python刷題筆記
🗓? 本文屬于【LeetCode 簡單題百日計劃】系列
👉 點擊查看系列總目錄 >>
📌 題目簡介
題號:976. 三角形的最大周長
難度:簡單
題目鏈接:點擊跳轉
🧾 題目描述(簡要)
給定一個正整數數組 nums
,從中選出三個數,使得它們可以構成一個三角形,并返回其最大周長。如果無法構成任何三角形,返回 0。
示例:
輸入:nums = [2,1,2]
輸出:5
解釋:可以組成三角形,周長是 2 + 2 + 1 = 5
💡 解法:排序 + 貪心判斷三角形
class Solution:def largestPerimeter(self, nums: list[int]) -> int:nums.sort(reverse=True)for i in range(len(nums) - 2):if nums[i] < nums[i+1] + nums[i+2]:return nums[i] + nums[i+1] + nums[i+2]return 0
🧠 我的理解
- 三角形的性質:任意兩邊之和 > 第三邊;
- 所以我們排序后,從大到小遍歷,尋找第一個滿足三角形條件的三元組;
- 因為我們從大到小遍歷,遇到的第一個合法三角形就是最大周長。
📌 基礎語法復習:
nums.sort(reverse=True)
:降序排序;range(len(nums) - 2)
:防止越界訪問i+1
和i+2
;return
表示函數提前結束并返回值。