三角形的最大周长

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

示例 1:

输入:nums = [2,1,2]
输出:5

示例 2:

输入:nums = [1,2,1]
输出:0

提示:

  • 3 <= nums.length <= 104
  • 1 <= nums[i] <= 106

方法一

class Solution {
      public int largestPerimeter(int[] A) {
          Arrays.sort(A);
          for(int i=A.length-1;i>=2;--i){
              if(A[i-2]+A[i-1]>A[i]){
                  return A[i-2]+A[i-1]+A[i];
              }
          }
          return 0;
    }

}
方法二
class Solution {
      public int largestPerimeter(int[] nums) {
           Arrays.sort(nums);
        int a = nums.length - 3, b = nums.length - 2, c = nums.length - 1;
        while(a >= 0) {
            if(nums[a] + nums[b] > nums[c]) {
                return nums[a] + nums[b] + nums[c];
            }
            a--;
            b--;
            c--;
        }
        return 0;

    }

}
posted @ 2022-07-06 09:37  开源遗迹  阅读(69)  评论(0)    收藏  举报