LeetCode 2177. Find Three Consecutive Integers That Sum to a Given Number Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
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 num must be a multiple of 3. If 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 = num3, then x-1, x, and x+1 are the three consecutive integers whose sum is num.

The time complexity is O(1), and the space complexity is O(1).

PythonJavaC++GoTypeScriptRustJavaScript
class Solution: def sumOfThree(self, num: int) -> List[int]: x, mod = divmod(num, 3) return [] if mod else [x - 1, x, x + 1](code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !