zoukankan      html  css  js  c++  java
  • LeetCode976 三角形的最大周长(Java排序简单应用-防自闭题)

    题目:

    给定由一些正数(代表长度)组成的数组 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));
        }
    }
     
  • 相关阅读:
    Vue小实例
    Bootstrap进度条
    Bootstrap导航栏
    Bootstrap表单
    java date类
    正则表达式(java)规则大全
    正则表达式(java)
    java Stringbuffer类
    java String类
    object类
  • 原文地址:https://www.cnblogs.com/sykline/p/12386316.html
Copyright © 2011-2022 走看看