1. 解题思路
这道题目算是这次双周赛最简单的一道题目了,只要先对所有的边进行排序之后使用贪婪算法考察每一条边作为最长边时前面的所有边的长度是否超过它即可。
2. 代码实现
给出python代码实现如下:
class Solution:
def largestPerimeter(self, nums: List[int]) -> int:
nums = sorted(nums)
s, n = nums[0] + nums[1], len(nums)
ans = -1
for i in range(2, n):
if nums[i] < s:
ans = s + nums[i]
s += nums[i]
return ans
提交代码评测得到:耗时545ms,占用内存32.4MB。