题目链接

class Solution { // 1.暴力法,不行就剪一下,后面的话给的数组太长,使用break就可以了。。。 8ms,99.80% public int largestPerimeter(int[] nums) { Arrays.sort(nums); // 排序 int len = nums.length; int sum = 0; for(int i = 0; i < len-2; i++) { int maxLen = nums[len-i-1]; for(int j = i+1; j < len-1; j++) { int midLen = nums[len-j-1]; for(int k = j+1; k < len; k++) { int minLen = nums[len-k-1]; if(maxLen!=0 && midLen!=0 && minLen != 0 && minLen+midLen > maxLen) { // sum = Math.max(sum,maxLen+midLen+minLen); return maxLen+midLen+minLen; } break; } break; } } return sum; } // 2.老师的 8ms,99.80% public int largestPerimeter1(int[] nums) { Arrays.sort(nums); for(int i = nums.length-1; i>=2; i--) { if(nums[i-1]+nums[i-2] > nums[i]) { return nums[i-1]+nums[i-2]+nums[i]; } } return 0; }}