less than 1 minute read

Problem Statement

leetcode problem link

Brute Force [Accepted]

class Solution:
    def isValid(self, x, y, z):
        if x + y <= z:
            return False
        if x + z <= y:
            return False
        if y + z <= x:
            return False
        return True

    def largestPerimeter(self, nums: List[int]) -> int:
        nums.sort(reverse=True)
        N = len(nums)
        for i in range(2, N):
            if self.isValid(nums[i - 2], nums[i - 1], nums[i]):
                return sum([nums[i - 2], nums[i - 1], nums[i]])

        return 0

Editorial

class Solution(object):
    def largestPerimeter(self, A):
        A.sort()
        for i in xrange(len(A) - 3, -1, -1):
            if A[i] + A[i+1] > A[i+2]:
                return A[i] + A[i+1] + A[i+2]
        return 0