前往
大廳
主題

LeetCode - 1304. Find N Unique Integers Sum up to Zero 解題心得

Not In My Back Yard | 2021-12-22 00:00:05 | 巴幣 0 | 人氣 244

題目連結:


題目意譯:
給定一整數 n,回傳任意一個陣列包含著 n 個相異整數,其總和為 0。

限制:
1 ≦ n ≦ 1000



範例測資:
範例 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]


解題思維:
假設 m = floor(n ÷ 2),其中 floor() 為下高斯函數(對正數來說等價於無條件捨去小數點)。

則我們可以立刻找到一個符合所求的陣列 [1, -1, 2, -2, 3, -3, ……, m, -m]。而如果 n 是奇數,則還要再多一個 0 作為其中的元素。

如上便可以得到一個總和為 0 且長度為 n 的陣列。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作