美文网首页算法刷题
LeetCode刷题-和为零的N个唯一整数

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

作者: 小鲨鱼FF | 来源:发表于2021-07-04 20:01 被阅读0次

    前言说明

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

    题目连接

    和为零的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个唯一整数

        本文链接:https://www.haomeiwen.com/subject/uhyoeltx.html