Swift in LeetCodeLeetCode

976. 三角形的最大周长

2019-07-18  本文已影响1人  1江春水

【题目描述】
给定由一些正数(代表长度)组成的数组 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、形成三角形的条件:任意两条边之和大于第三条边
思路:

代码实现:

func largestPerimeter(_ A: [Int]) -> Int {
    var tmp = A.sorted(by: >)
    for i in 2..<tmp.count {
        if tmp[i] + tmp[i-1] > 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.count {
        if i+2 < tmp.count {
            if tmp[i]+tmp[i+1] > 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
}
上一篇 下一篇

猜你喜欢

热点阅读