题目链接
    image.png

    1. class Solution {
    2. // 1.暴力法,不行就剪一下,后面的话给的数组太长,使用break就可以了。。。 8ms,99.80%
    3. public int largestPerimeter(int[] nums) {
    4. Arrays.sort(nums); // 排序
    5. int len = nums.length;
    6. int sum = 0;
    7. for(int i = 0; i < len-2; i++) {
    8. int maxLen = nums[len-i-1];
    9. for(int j = i+1; j < len-1; j++) {
    10. int midLen = nums[len-j-1];
    11. for(int k = j+1; k < len; k++) {
    12. int minLen = nums[len-k-1];
    13. if(maxLen!=0 && midLen!=0 && minLen != 0 && minLen+midLen > maxLen) {
    14. // sum = Math.max(sum,maxLen+midLen+minLen);
    15. return maxLen+midLen+minLen;
    16. }
    17. break;
    18. }
    19. break;
    20. }
    21. }
    22. return sum;
    23. }
    24. // 2.老师的 8ms,99.80%
    25. public int largestPerimeter1(int[] nums) {
    26. Arrays.sort(nums);
    27. for(int i = nums.length-1; i>=2; i--) {
    28. if(nums[i-1]+nums[i-2] > nums[i]) {
    29. return nums[i-1]+nums[i-2]+nums[i];
    30. }
    31. }
    32. return 0;
    33. }
    34. }