当前位置: 首页 > news >正文

贪心算法求数组中能组成三角形的最大周长

题目:三角形的最大周长
给定由一些正数(代表长度)组成的数组arr,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
如果不能形成任何面积不为零的三角形,返回`0。

分析:

  • 对数组排序,再从大到小选择三个数,
  • 再判断是否能构成三角形,可以直接返回三数之和,不能就把最大的数换掉,往小数的方向继续找下一个,更新三个数的位置,继续判断,找到一个就返回
import java.util.Arrays;
/*** @author: Arbicoral* @create: 2023-07-18 13:07* @Description: 三角形的最大周长*/
public class GreedyByMaxPerimeter {public static void main(String[] args) {System.out.println(maxPerimeter(new int[]{3,6,2,3,8,5,9,10,1}));}private static int maxPerimeter(int[] arr) {Arrays.sort(arr);int a,b,c;// a:第三大  b:次大   c:最大for (int i = arr.length-1; i>1; i--) {c = arr[i];b = arr[i-1];a = arr[i-2];if (isTriangle(a,b,c)){System.out.println("三角形的三边分别为:"+a+"\t"+b+"\t"+c);return a+b+c;}}return -1;}/*** 判断 a b c 能否组成三角形,其中 a < b < c* 判断条件:两边之和 > 第三边*/private static boolean isTriangle(int a, int b, int c) {return a + b > c;}
}
http://www.lryc.cn/news/131339.html

相关文章:

  • VMWare Workstation 17 Pro 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式
  • 拒绝摆烂!C语言练习打卡第四天
  • KubeSphere 社区双周报 | Java functions framework 支持 SkyWalking | 2023.8.4-8.17
  • 【学习笔记之java】使用RestTemplate调用第三方接口
  • 数据集成革新:去中心化微服务集群的无限潜能
  • 后端返回可下载的xlsx文件,但是前端接收下载后为乱码
  • 提升资源管理效率必备工具推荐
  • HJ23 删除字符串中出现次数最少的字符
  • 文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题
  • Leetcode - 滑动窗口
  • 如何保证数据传输的安全?
  • 政务、商务数据资源有效共享:让数据上“链”,记录每一个存储过程!
  • xml转map工具类
  • C++并发多线程--std::future_status、std::shared_future和std::atomic的使用
  • Redis在Java中的基本使用
  • 4.2 C++ Boost 内存池管理库
  • Django模型基础
  • 导读-Linux简介
  • 判断平面中两射线是否相交的高效方法
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)八:自定义组件封装上
  • RabbitMq交换机类型介绍
  • 中国电信秋招攻略,考试内容分析
  • prompt-engineering-note(面向开发者的ChatGPT提问工程学习笔记)
  • 2011-2021年数字普惠金融指数Bartik工具变量法(含原始数据和Bartik工具变量法代码)
  • [ MySQL ] — 常见函数的使用
  • Spring AOP实现切入增强的两种方式(execution+annotation)-Demo
  • 人工智能在网络安全中的作用:当前的局限性和未来的可能性
  • BC99 序列中整数去重
  • [PyTorch][chapter 52][迁移学习]
  • Ceph如何操作底层对象数据