首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非零区域三角形的最大周长

非零区域三角形的最大周长
EN

Stack Overflow用户
提问于 2022-10-12 14:20:01
回答 1查看 176关注 0票数 1

给定整数数组num,返回由其中三个长度组成的非零区域的三角形的最大周长。如果不可能形成非零区域的任何三角形,则返回0。

我可以考虑蛮力法,另一种方法是对给定的数组进行排序,向后迭代一个循环,检查形成三角形的条件并返回和,还有其他方法来解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-12 16:33:14

我能想到的最佳算法是将数字放入中,而不是对数组进行排序。通常是O(n)来创建堆,而O(1)则是查找三角形。最坏的情况是,如果没有数字满足三角形条件,则需要进行O(n log(n))比较。这种最坏的情况只有当你允许大整数进入混合时才能被击中。例如,对于64位整数,最坏的情况是O(n)

考虑到您必须查看每个元素,您不能比O(n)平均时间做得更好。对于固定大小的整数,所有的技巧,比如基数排序,都不会有多大帮助。

即使在任意整数的情况下,它仍然是非常好的。

假设我们有一个基于比较的算法和最坏的o(n log(n))情况。然后,通过跟踪所做的比较,并将Kahn的算法应用于拓扑排序,您将得到一个基于比较的排序,即o(n log(n)),这是众所周知的不可能的排序。

对于任意大小的整数,我很难找到一个基于非比较的算法,这个算法可能会做得更好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74043458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档