0
点赞
收藏
分享

微信扫一扫

[2177] 找到和为给定整数的三个连续整数

钎探穗 2022-02-26 阅读 48
// 2177. 找到和为给定整数的三个连续整数
class Solution {
    public long[] sumOfThree(long num) {
        long[] ans;

        if(num % 3 == 0){
            // 只考虑能被3整除的
            ans = new long[3];

            /*
             根据等差数列的前n项和
             中间的3项: n - 1, n, n + 1
             3项之和:S(n-1, n+1) = (n-1) + n (n+1) = 3n
            */
            // 我们可以知道这里中间的那一项为num/3
            long mid = (long)(num / 3);

            // 这里直接赋值即可
            ans[0] = mid - 1;
            ans[1] = mid;
            ans[2] = mid + 1;
        }else{
            // 直接返回空数组
            ans = new long[0];
        }

        return ans;
    }
}
举报

相关推荐

0 条评论