LeetCode刷题-和为零的N个唯一整数

前言说明

算法学习,日常刷题记录。

题目连接

和为零的N个唯一整数

题目内容

给你一个整数n,请你返回任意一个由n个各不相同的整数组成的数组,并且这n个数相加和为0。

示例1:

输入:n = 5

输出:[-7,-1,1,3,4]

解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。

示例2:

输入:n = 3

输出:[-1,0,1]

示例3:

输入:n = 1

输出:[0]

提示:

1 <= n <= 1000

分析过程

定义结果数组results,定义总和sum。

从1开始遍历到n - 1,每次把n本身赋值到结果数组results中,总和sum累加n。

遍历结束后,构造结果数组results的第n个数,这个数取总和sum的负数,因为它们相加之为0。

解答代码

class Solution {
    public int[] sumZero(int n) {
        // 定义结果数组results
        int[] results = new int[n];

        if (n <= 1) {
            // 若n小于等于1,那么结果数组results只有一个元素,并且是0
            results[0] = 0;
        }

        // 定义总和
        int sum = 0;

        // 从1开始遍历到n-1
        for (int i = 1; i <= n - 1; ++i) {
            // 每次把n本身赋值到结果数组results中
            results[i - 1] = i;

            // 累加n值得到总和
            sum += i;
        }

        // 结果数组results的最后一个元素取总和的负数,那么他们相加之和就肯定为0了
        results[n - 1] = sum * -1;

        return results;
    }
}

提交结果

执行用时0ms,时间击败100.00%的用户,内存消耗36.8MB,空间击败45.13%的用户。

运行结果

关注更多

更多链接:更多链接

你可能感兴趣的:(LeetCode刷题-和为零的N个唯一整数)