学习时间:
2023年1月25日
题目描述:
题解分享:
// 作 者 : 繁 华 倾 夏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> // 调用qsort函数
// 力扣(LeetCode):976. 三角形的最大周长
int compare(const void* left, const void* right) //left,right 是任意两个元素的地址值
{
return *(int*)left - *(int*)right; // 从小到大排序
}
// A:数组 ASize:数组长度
int largestPerimeter(int* A, int ASize) {
qsort(A, ASize, sizeof(int), compare);
// 两边之和大于第三边,只要两个短的边长之和大于第三边,那么就可以构成三角形,因为排序过后,此时即为最大周长
for (int i = ASize - 1; i >= 2; --i) {
if (A[i - 2] + A[i - 1] > A[i]) {
return A[i - 2] + A[i - 1] + A[i];
}
}
return 0;
}
// 测试用例
// 输入 nums = [2, 1, 2]
// 输出 5
int main() {
int A[] = { 2,1,2 };
int ASize = sizeof(A) / sizeof(A[0]);
int re = largestPerimeter(A, ASize);
printf("%d", re);
return 0;
}
【繁华倾夏】【每日力扣题解分享】【Day11】