Skip to content

Commit 8db2c1f

Browse files
committed
Optimize AbsoluteMax.getMaxValue() for efficiency
1 parent a81fb32 commit 8db2c1f

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/main/java/com/thealgorithms/maths/AbsoluteMax.java

+11-5
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,18 @@ public static int getMaxValue(int... numbers) {
1515
if (numbers == null || numbers.length == 0) {
1616
throw new IllegalArgumentException("Numbers array cannot be empty or null");
1717
}
18-
int absMax = numbers[0];
19-
for (int i = 1; i < numbers.length; i++) {
20-
if (Math.abs(numbers[i]) > Math.abs(absMax)) {
21-
absMax = numbers[i];
18+
19+
int maxPositive = Integer.MIN_VALUE;
20+
int maxNegative = Integer.MIN_VALUE;
21+
22+
for (int number : numbers) {
23+
if (number >= 0 && number > maxPositive) {
24+
maxPositive = number;
25+
} else if (number < 0 && Math.abs(number) > Math.abs(maxNegative)) {
26+
maxNegative = number;
2227
}
2328
}
24-
return absMax;
29+
30+
return Math.max(maxPositive, maxNegative);
2531
}
2632
}

0 commit comments

Comments
 (0)