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));
        }
    }
     
  • 相关阅读:
    变量按数据类型分类
    构造方法重载 及注意事项
    构造方法-带参
    构造方法-无参
    对对象中的属性赋值(两种方法)
    局部变量的值赋给成员变量 案例(红色字体)
    成员变量与局部变量区别
    创建对象综合案例
    20151015css3 部分css2的内容
    20151012jq4
  • 原文地址:https://www.cnblogs.com/sykline/p/12386316.html
Copyright © 2011-2022 走看看