Skip to content

Commit b7c9405

Browse files
solve #3000: Maximum Area of Longest Diagonal Rectangle in java
1 parent 08e086e commit b7c9405

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@
880880
| 2974 | [Minimum Number Game](https://leetcode.com/problems/minimum-number-game) | [![Java](assets/java.png)](src/MinimumNumberGame.java) | |
881881
| 2980 | [Check if Bitwise OR Has Trailing Zeros](https://leetcode.com/problems/check-if-bitwise-or-has-trailing-zeros) | [![Java](assets/java.png)](src/CheckIfBitwiseORHasTrailingZeros.java) | |
882882
| 2996 | [Smallest Missing Integer Greater Than Sequential Prefix Sum](https://leetcode.com/problems/smallest-missing-integer-greater-than-sequential-prefix-sum) | [![Java](assets/java.png)](src/SmallestMissingIntegerGreaterThanSequentialPrefixSum.java) | |
883-
| 3000 | [Maximum Area of Longest Diagonal Rectangle](https://leetcode.com/problems/maximum-area-of-longest-diagonal-rectangle) | | |
883+
| 3000 | [Maximum Area of Longest Diagonal Rectangle](https://leetcode.com/problems/maximum-area-of-longest-diagonal-rectangle) | [![Java](assets/java.png)](src/MaximumAreaOfLongestDiagonalRectangle.java) | |
884884
| 3005 | [Count Elements With Maximum Frequency](https://leetcode.com/problems/count-elements-with-maximum-frequency) | | |
885885
| 3010 | [Divide an Array Into Subarrays With Minimum Cost I](https://leetcode.com/problems/divide-an-array-into-subarrays-with-minimum-cost-i) | | |
886886
| 3014 | [Minimum Number of Pushes to Type Word I](https://leetcode.com/problems/minimum-number-of-pushes-to-type-word-i) | | |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// https://leetcode.com/problems/maximum-area-of-longest-diagonal-rectangle
2+
// T: O(N)
3+
// S: O(1)
4+
5+
public class MaximumAreaOfLongestDiagonalRectangle {
6+
public int areaOfMaxDiagonal(int[][] dimensions) {
7+
int maxArea = 0, maxDiagonal = 0;
8+
9+
for (final int[] rectangle : dimensions) {
10+
final int diagonal = getDiagonal(rectangle);
11+
final int area = getArea(rectangle);
12+
13+
if (diagonal > maxDiagonal) {
14+
maxDiagonal = diagonal;
15+
maxArea = area;
16+
} else if (diagonal == maxDiagonal) {
17+
maxArea = Math.max(maxArea, area);
18+
}
19+
}
20+
21+
return maxArea;
22+
}
23+
24+
private static int getArea(int[] rectangle) {
25+
return rectangle[0] * rectangle[1];
26+
}
27+
28+
private static int getDiagonal(int[] rectangle) {
29+
return rectangle[0] * rectangle[0] + rectangle[1] * rectangle[1];
30+
}
31+
}

0 commit comments

Comments
 (0)