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