LeetCode 976. 三角形的最大周长

题目描述

976. 三角形的最大周长

思路分析

解法一:排序后贪心(推荐)

核心思路

  • 将数组排序。
  • 对于降序三元组,只要满足 a < b + c 即可组成三角形。
  • 从最大开始检查,首个满足条件的周长最大。


复杂度分析

  • 时间复杂度:O(n log n),排序开销。
  • 空间复杂度:O(1) 或 O(log n)。
import java.util.Arrays;

class Solution {
    public int largestPerimeter(int[] nums) {
        Arrays.sort(nums);
        for (int i = nums.length - 1; i >= 2; i--) {
            if (nums[i - 2] + nums[i - 1] > nums[i]) {
                return nums[i] + nums[i - 1] + nums[i - 2];
            }
        }
        return 0;
    }
}
import "sort"

func largestPerimeter(nums []int) int {
	sort.Ints(nums)
	for i := len(nums) - 1; i >= 2; i-- {
		if nums[i-2]+nums[i-1] > nums[i] {
			return nums[i] + nums[i-1] + nums[i-2]
		}
	}
	return 0
}

相似题目

题目 难度 考察点
976. 三角形的最大周长 简单 排序
611. 有效三角形的个数 中等 排序、双指针
812. 最大三角形面积 简单 几何
16. 最接近的三数之和 中等 排序、双指针
18. 四数之和 中等 排序、双指针
259. 较小的三数之和 中等 排序、双指针
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/16619433
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!