Consecutive Numbers Sum LeetCode solution in Java

1
class Solution {
2

3
public int consecutiveNumbersSum(int n) {
4
final double eightN = (8d * ((double) n)); // convert to double because 8n can overflow int
5
final int maxTriangular = (int) Math.floor((-1d + Math.sqrt(1d + eightN)) / 2d);
6
int ways = 1;
7
int triangular = 1;
8
for (int m = 2; m <= maxTriangular; ++m) {
9
triangular += m;
10
final int difference = n - triangular;
11
if ((difference % m) == 0) {
12
ways++;
13
}
14
}
15
return ways;
16
}
17
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0