恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

贪心题目:三角形的最大周长

  • 首页
  • 资讯中心
  • /
  • 贪心题目:三角形的最大周长

相关资讯

洁净环境实时监测系统设计与实践 2026/9/12 10:19:41
电商大数据分析全流程实战指南 2026/9/12 10:14:41
DWT与SPIHT联合技术在图像安全传输中的应用与优化 2026/9/12 10:14:41

最新资讯

Rust错误处理机制详解:从Option到高级技巧
低功耗开发七层控制链:从硬件电路到安卓Framework的系统级实践
Windows 下 Fumadocs 报 ERR_UNSUPPORTED_ESM_URL_SCHEME 如何快速解决
Android Intent过滤器详解与深度链接实践
ReVanced Manager 提示 Out Of Memory 错误怎么解决
C++引用与指针的核心差异及应用场景详解

今日推荐

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现
【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)
【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

贪心题目:三角形的最大周长

发布时间:2026/9/12 10:19:41
贪心题目:三角形的最大周长 文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目标题和出处标题三角形的最大周长出处976. 三角形的最大周长难度3 级题目描述要求给定一个整数数组nums \texttt{nums}nums返回从该数组中取出三个元素作为边长的面积不为零的最大三角形周长。如果不能形成任何面积不为零的三角形返回0 \texttt{0}0。示例示例 1输入nums [2,1,2] \texttt{nums [2,1,2]}nums [2,1,2]输出5 \texttt{5}5示例 2输入nums [1,2,1] \texttt{nums [1,2,1]}nums [1,2,1]输出0 \texttt{0}0数据范围3 ≤ nums.length ≤ 10 4 \texttt{3} \le \texttt{nums.length} \le \texttt{10}^\texttt{4}3≤nums.length≤1041 ≤ nums[i] ≤ 10 6 \texttt{1} \le \texttt{nums[i]} \le \texttt{10}^\texttt{6}1≤nums[i]≤106解法思路和算法由于整数数组nums \textit{nums}nums中的所有元素都大于零因此数组nums \textit{nums}nums中的所有元素都是正整数。三个正整数可以组成三角形的三条边的边长等价于其中两个较小的正整数之和大于最大的正整数。用a aa、b bb和c cc表示三角形的三条边的边长其中a ≤ b ≤ c a \le b \le ca≤b≤c则应满足a b c a b cabc。为方便处理首先将数组nums \textit{nums}nums按升序排序。当最大边长c cc确定时为了使三角形的周长最大a aa和b bb应取最大值。对于i ≥ 2 i \ge 2i≥2当c nums [ i ] c \textit{nums}[i]cnums[i]时应取b nums [ i − 1 ] b \textit{nums}[i - 1]bnums[i−1]和a nums [ i − 2 ] a \textit{nums}[i - 2]anums[i−2]。如果此时a b c a b cabc则三角形的最大周长为a b c a b cabc。如果此时a b ≤ c a b \le cab≤c则a aa和b bb不能取更大值如果将a aa和b bb换成a ′ aa′和b ′ bb′则必有a ′ ≤ a a \le aa′≤ab ′ ≤ b b \le bb′≤ba ′ b ′ ≤ a b ≤ c a b \le a b \le ca′b′≤ab≤c因此不存在以c cc为最大边长的三角形。根据上述分析可以使用贪心的思想计算最大三角形周长。具体做法是首先将数组nums \textit{nums}nums按升序排序然后反向遍历数组nums \textit{nums}nums判断每组相邻三个元素是否可以组成三角形的三条边的边长如果可以则将三个元素之和作为最大三角形周长返回。如果遍历结束之后仍未遇到相邻三个元素可以组成三角形的三条边的边长则不能形成面积不为零的三角形返回0 00。代码classSolution{publicintlargestPerimeter(int[]nums){Arrays.sort(nums);for(intinums.length-3;i0;i--){if(nums[i]nums[i1]nums[i2]){returnnums[i]nums[i1]nums[i2];}}return0;}}复杂度分析时间复杂度O ( n log ⁡ n ) O(n \log n)O(nlogn)其中n nn是数组nums \textit{nums}nums的长度。排序需要O ( n log ⁡ n ) O(n \log n)O(nlogn)的时间排序之后遍历数组需要O ( n ) O(n)O(n)的时间因此时间复杂度是O ( n log ⁡ n ) O(n \log n)O(nlogn)。空间复杂度O ( log ⁡ n ) O(\log n)O(logn)其中n nn是数组nums \textit{nums}nums的长度。排序需要O ( log ⁡ n ) O(\log n)O(logn)的递归调用栈空间。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号