首页 > 编程语言 > 详细

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

时间:2021-04-08 15:26:18      阅读:2      评论:0      收藏:0      [点我收藏+]

给定一些正数(代表长度)组成的数组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))
}

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

原文:https://www.cnblogs.com/pangqianjin/p/14631651.html

(0)
(0)
   
举报
评论 一句话评论(0
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号