Skip to content

Commit 1b646dc

Browse files
authored
Create 3000-maximum-area-of-longest-diagonal-rectangle.java
1 parent d4ecb83 commit 1b646dc

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Problem: 2679. Sum in a Matrix (variation: Area of Max Diagonal)
3+
* Difficulty: Easy
4+
* URL: https://leetcode.com/problems/area-of-maximum-diagonal/
5+
*
6+
* Approach:
7+
* - For each rectangle (length, width), compute the squared diagonal = l² + w².
8+
* - Also compute its area = l * w.
9+
* - Track the maximum diagonal squared.
10+
* - If a rectangle has a larger diagonal, update max diagonal and max area.
11+
* - If diagonal is equal to current max, take the larger area.
12+
* - Using squared diagonal avoids floating-point issues from Math.sqrt.
13+
*
14+
* Time Complexity: O(n) — one pass through all rectangles
15+
* Space Complexity: O(1) — only a few variables stored
16+
*/
17+
18+
class Solution {
19+
public int areaOfMaxDiagonal(int[][] dimensions) {
20+
int maxDiaSq = 0; // store squared diagonal
21+
int maxArea = 0;
22+
23+
for (int[] arr : dimensions) {
24+
int diaSq = arr[0] * arr[0] + arr[1] * arr[1];
25+
int area = arr[0] * arr[1];
26+
27+
if (diaSq > maxDiaSq) {
28+
maxDiaSq = diaSq;
29+
maxArea = area;
30+
} else if (diaSq == maxDiaSq && area > maxArea) {
31+
maxArea = area;
32+
}
33+
}
34+
35+
return maxArea;
36+
}
37+
}

0 commit comments

Comments
 (0)