这个题解的思路是首先检查给定的整数 num 是否能被 3 整除。这是因为任意三个连续整数的和必定是 3 的倍数,具体来说,如果三个连续整数分别是 x, x+1, x+2,那么它们的和是 3x+3,即 3(x+1)。因此,如果 num 不能被 3 整除,那么 num 无法被表示为三个连续整数的和。如果 num 可以被 3 整除,通过计算 num // 3 - 1 可以得到 x 的值,进而得到三个连续整数 x, x+1, x+2。
时间复杂度: O(1)
空间复杂度: O(1)
from typing import List
class Solution:
def sumOfThree(self, num: int) -> List[int]:
# 检查 num 是否能被3整除
if num % 3 != 0:
return [] # 如果不是,返回空数组
# 计算连续整数的起始值
start = num // 3 - 1 # 起始整数
return [start, start + 1, start + 2] # 返回三个连续整数
# 示例测试
solution = Solution()
print(solution.sumOfThree(33)) # 输出: [10, 11, 12]
print(solution.sumOfThree(4)) # 输出: []