2177. Find Three Consecutive Integers That Sum to a Given Number
Description
Given an integer num
, return three consecutive integers (as a sorted array) that sum to num
. If num
cannot be expressed as the sum of three consecutive integers, return an empty array.
Example 1:
Input: num = 33 Output: [10,11,12] Explanation: 33 can be expressed as 10 + 11 + 12 = 33. 10, 11, 12 are 3 consecutive integers, so we return [10, 11, 12].
Example 2:
Input: num = 4 Output: [] Explanation: There is no way to express 4 as the sum of 3 consecutive integers.
Constraints:
0 <= num <= 1015
Solutions
Solution 1: Mathematics
Assume the three consecutive integers are \(x-1\), \(x\), and \(x+1\). Their sum is \(3x\), so \(\textit{num}\) must be a multiple of \(3\). If \(\textit{num}\) is not a multiple of \(3\), it cannot be represented as the sum of three consecutive integers, and we return an empty array. Otherwise, let \(x = \frac{\textit{num}}{3}\), then \(x-1\), \(x\), and \(x+1\) are the three consecutive integers whose sum is \(\textit{num}\).
The time complexity is \(O(1)\), and the space complexity is \(O(1)\).
1 2 3 4 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|