三角形的最大周长-贪心算法-基于Go

给定一些正数(代表长度)组成的数组arr,返回由其中三个
长度组成的面积不为0的三角形的最大周长。

如果不能组成三角形,返回0.

  • 三角形满足条件:a+b>c且a+c>b且b+c>a
  • 贪心算法
    • 先排序(升序)
    • 从后往前选三个数,看是否满足三角形条件
package main

import (
	"fmt"
	"sort"
)

func largestPerimeter(nums []int)int{
	sort.Ints(nums)
	for i:=len(nums)-1; i>=2; i--{
                // 不满足则说明nums[i]有点大,要小一些,所以往前找
		if nums[i-1]+nums[i-2] > nums[i]{
			return nums[i-1]+nums[i-2]+nums[i]
		}
	}

	return 0
}

func main(){
	var nums = []int{3,6,2,3}
	fmt.Println(largestPerimeter(nums))
}
原文地址:https://www.cnblogs.com/pangqianjin/p/14631651.html