LeetCode 976. 三角形的最大周长 Largest Perimeter Triangle

【题目描述】
给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
如果不能形成任何面积不为零的三角形,返回 0。
【示例1】

输入:[2,1,2]
输出:5

【示例2】

输入:[1,2,1]
输出:0

【示例3】

输入:[3,2,3,4]
输出:10

【示例4】

输入:[3,6,2,3]
输出:8

【提示】

3 <= A.length <= 10000
1 <= A[i] <= 10^6

1、形成三角形的条件:任意两条边之和大于第三条边
思路:

  • 数组从大到小排序
  • index从2开始,只要满足 arr[index]+arr[index-1]>arr[index-2]即可

代码实现:

func largestPerimeter(_ A: [Int]) -> Int {
    var tmp = A.sorted(by: >)
    for i in 2.. tmp[i-2] {
            return tmp[i]+tmp[i-1]+tmp[i-2]
        }
    }
    return 0
}

这个看看就行啦,哈哈哈

func largestPerimeter(_ A: [Int]) -> Int {
    var tmp = A.sorted()
    var arr = [Int]()

    for i in 0.. tmp[i+2] && tmp[i+1]+tmp[i+2] > tmp[i] && tmp[i]+tmp[i+2] > tmp[i+1] {
                arr.append(tmp[i]+tmp[i+1]+tmp[i+2])
            }
        }
    }
    if arr.count > 0 {
        return arr.max()!
    }
    return 0
}

你可能感兴趣的:(LeetCode 976. 三角形的最大周长 Largest Perimeter Triangle)