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")
}