首页 > 牛牛与三角形题解(欢迎讨论)
头像
擎宇要努力努力再努力
编辑于 2020-12-16 10:28
+ 关注

牛牛与三角形题解(欢迎讨论)

谁有更好的方法呀

题目描述

牛牛想从n个数中找出三个数来组成一个三角形,只不过牛牛想知道在所有的三角形的组成中,周长最大的三角形的周长减去周长最小的三角形的周长是多少?
牛牛不能够解决该问题,所以他想请你帮忙,给定n个数,返回在所有合法的三角形的组成中,周长最大的三角形的周长减去周长最小的三角形的周长的值。
题目保证每组测试数据中都存在有三个数可以构成三角形,保证答案在int范围内。

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 返回在所有合法的三角形的组成中,最大的三角形的周长减去最小的三角形的周长的值
     * @param n int整型 代表题目中的n
     * @param a int整型一维数组 代表n个数的大小
     * @return int整型
     */
    public int solve (int n, int[] a) {
        Arrays.sort(a);
        int len = a.length;
        int r = len-1;
        int l = 0;
                
        while(!((a[r-1]+a[r-2] > a[r]) && (a[r]-a[r-1] < a[r-2]))){ //找最大
            r--;
        }
              int max = a[r]+a[r-1]+a[r-2];


        while(!((a[l]+a[l+1] > a[l+2]) && (a[l+2]-a[l+1] < a[l]))){ //找最小
            l++;
        }
              int min = a[l]+a[l+1]+a[l+2];

        return (max-min);
    }
}


全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐