1. 程式人生 > 實用技巧 >LeetCode1304-和為零的N個唯一整數

LeetCode1304-和為零的N個唯一整數

非商業,LeetCode連結附上:

https://leetcode-cn.com/problems/find-n-unique-integers-sum-up-to-zero/

進入正題。

題目:

給你一個整數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

程式碼實現:

public int[] sumZero(int n) {

        int[] ans = new int[n];
        int index = 0;

        for(int i = 1; i <= n/2; i++) {
            ans[index++] = -i;
            ans[index++] = i;
        }

        return ans;
        
}
//時間複雜度O(n),空間複雜度O(n)

分析:

相加為零的,只需要成對出現的相同的正負數,需要額外考慮的是陣列長度為奇數的情況。

利用整型陣列初始值都為0的性質,當是陣列的長度為奇數時,不對最後一位數做操作,即為預設值0。

大道至簡,複雜的解法往往是有問題的。

--End