(LeetCode 每日一题) 3000. 对角线最长的矩形的面积(数组)
题目:3000. 对角线最长的矩形的面积
思路:数组,时间复杂度0(n)。
勾股定理,对角线的长度等于长宽的平方之和,再取根号,可以直接用对角线的平方进行比较
C++版本:
class Solution {
public:int areaOfMaxDiagonal(vector<vector<int>>& dimensions) {int sum=0;int len=0;for(auto x:dimensions){if(len<x[0]*x[0]+x[1]*x[1]){len=x[0]*x[0]+x[1]*x[1];sum=x[0]*x[1];}else if(len==x[0]*x[0]+x[1]*x[1]){ sum=max(sum,x[0]*x[1]);}}return sum;}
};
JAVA版本:
class Solution {public int areaOfMaxDiagonal(int[][] dimensions) {int sum=0;int len=0;for(var x:dimensions){if(len<x[0]*x[0]+x[1]*x[1]){len=x[0]*x[0]+x[1]*x[1];sum=x[0]*x[1];}else if(len==x[0]*x[0]+x[1]*x[1]){ sum=Math.max(sum,x[0]*x[1]);}}return sum;}
}
GO版本:
func areaOfMaxDiagonal(dimensions [][]int) int {sum,len:=0,0for _,x:=range dimensions {if len<x[0]*x[0]+x[1]*x[1] {len=x[0]*x[0]+x[1]*x[1]sum=x[0]*x[1]}else if len==x[0]*x[0]+x[1]*x[1] { sum=max(sum,x[0]*x[1]);}}return sum
}