三角形最大周长

2023-12-24 20:44:13

from 挑战程序设计竞赛


?贪心:

1.将数组排序

2.从大到小,倒序遍历:

3.如果选取nums[i] :

nums[i] < nums[i-1] + nums[i-2] 既满足 “两边之和大于第三边”,且该三边组合出最大值周长

func main() {
	n := 5 //len
	nums := []int{4, 5, 2, 3, 10}
	//greedy
	sort.Ints(nums)
	for i := n - 1; i >= 2; i-- {
		if nums[i] < (nums[i-1] + nums[i-2]) {
			fmt.Print("ans: ", nums[i]+nums[i-1]+nums[i-2], "\nchoose:", nums[i], nums[i-1], nums[i-2])
			return
		}
	}
	fmt.Print("no ans")

}

文章来源:https://blog.csdn.net/qq_60678811/article/details/135180110
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。