Isaac Emmanuel
09 Sept 2026•EasyGo / Python / TypeScript

Largest Perimeter Triangle

Find the largest perimeter of a non-degenerate triangle constructible from three lengths.

Sort descending and return the first consecutive triple satisfying the triangle inequality; no later triple can have a larger perimeter.

Complexity

O(n log n) time and language-dependent sorting space.

Solution files

Go•largest-perimeter-triangle/solution.go
package main

import "sort"

func largestPerimeter(nums []int) int {
	sort.Sort(sort.Reverse(sort.IntSlice(nums)))
	for index := 0; index+2 < len(nums); index++ {
		if nums[index+1]+nums[index+2] > nums[index] {
			return nums[index] + nums[index+1] + nums[index+2]
		}
	}
	return 0
}
Python•largest-perimeter-triangle/solution.py
class Solution:
    def largestPerimeter(self, nums: list[int]) -> int:
        nums.sort(reverse=True)
        for first, second, third in zip(nums, nums[1:], nums[2:]):
            if second + third > first: return first + second + third
        return 0
TypeScript•largest-perimeter-triangle/solution.ts
function largestPerimeter(nums: number[]): number {
  nums.sort((left, right) => right - left);
  for (let index = 0; index + 2 < nums.length; index += 1) if (nums[index + 1] + nums[index + 2] > nums[index]) return nums[index] + nums[index + 1] + nums[index + 2];
  return 0;
}