ETH官方钱包

前往
大廳
主題

LeetCode - 2177. Find Three Consecutive Integers That Sum to a Given Number 解題心得

Not In My Back Yard | 2022-09-27 12:00:11 | 巴幣 100 | 人氣 265

題目連結(jié):


題目意譯:
給定一整數(shù) num,回傳三個(gè)連續(xù)整數(shù)(按升序排序後回傳)使得總和為 num。如果 num 無(wú)法表示為三個(gè)連續(xù)整數(shù)的總和,則回傳一個(gè)空陣列。

限制:
0 ≦ num ≦ 10 ^ 15



範(fàn)例測(cè)資:
範(fàn)例 1:
輸入: num = 33
輸出: [10,11,12]
解釋?zhuān)?33 可以表示為 10 + 11 + 12 = 33。
10 、 11 、 12 是三個(gè)連續(xù)整數(shù),因此我們回傳 [10,11,12]。

範(fàn)例 2:
輸入: num = 4
輸出: []
解釋?zhuān)?不存在任何一個(gè)方式可以使用三個(gè)連續(xù)整數(shù)總和為 4。


解題思維:
可以看到題意即為找到一整數(shù) x,滿足 (x - 1) + x + (x + 1) = num。

而整理一下上面的式子可以得到
3x = num
因此可以推得當(dāng) num 無(wú)法被 3 整除的時(shí)候,x 就不會(huì)是整數(shù);反之,x 此時(shí)才會(huì)是整數(shù)。

因此我們可以先判斷 num 是否為 3 的倍數(shù)。如果不是,則直接回傳空陣列(因?yàn)闊o(wú)解);如果是,則答案即為 [x - 1, x, x + 1],其中 x 為 num ÷ 3。




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

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作