码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode976 三角形的最大周长(Java排序简单应用-防自闭题)

时间:2020-02-29 22:30:56      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:stat   scanner   arrays   on()   代码   turn   不为   problems   nbsp   

题目:

给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。

如果不能形成任何面积不为零的三角形,返回 0。

 

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/largest-perimeter-triangle

思路:
我们将数组A按从大到小的顺序排序,然后从头往后三个三个的撸,只要这三个中较小的两个的和大于最大就可以组成一个三角形。
简单分析一下为什么只用考虑两个的和大于最大的就可以:
假设有a<b<c<d<e,取其中的c,d,e,d-c的最大值是d(即c为0的时候),而d又小于e,所以d-c小于e是恒成立的。
 
代码:
import java.util.*;
import java.math.*;

class Solution {
    public int largestPerimeter(int[] A) {
        Arrays.sort(A);
        for(int i=A.length-3; i>=0; i--){
            if(A[i]+A[i+1] > A[i+2]){
                return A[i]+A[i+1]+A[i+2];
            }
        }
        return 0;
    }
}
public class Main {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] A = new int[n];
        for(int i=0; i<n; i++){
            A[i] = scanner.nextInt();
        }
        Solution solution = new Solution();
        System.out.println(solution.largestPerimeter(A));
    }
}

 

 

LeetCode976 三角形的最大周长(Java排序简单应用-防自闭题)

标签:stat   scanner   arrays   on()   代码   turn   不为   problems   nbsp   

原文地址:https://www.cnblogs.com/sykline/p/12386316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!