题目链接
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;
}
}