前往
大廳
主題

LeetCode - 0869. Reordered Power of 2 解題心得

Not In My Back Yard | 2023-07-16 12:00:08 | 巴幣 0 | 人氣 106

題目連結:


題目意譯:
你被給定一整數 n。我們可以將其位數重新排列(包含原先的順序),使得開頭位數不為零。

回傳真(True),若且唯若我們可以把產生的數字為 2 的某一個冪次。

限制:
1 ≦ n ≦ 10 ^ 9



範例測資:
範例 1:
輸入: n = 1
輸出: true

範例 2:
輸入: n = 10
輸出: false


解題思維:
根據 n 的數值範圍,n 只有可能變成是 2 ^ 0 到 2 ^ 30。

因此我們只要窮舉出 2 ^ 0 、 2 ^ 1 、……、 2 ^ 30 每一個二的冪次,並把每個冪次的位數按照某個順序排序(例如說由小排到大),然後跟以相同順序排序的 n 之位數去比較有沒有完全一致即可。如果有某個冪次與 n 排序後的位數相同,則代表 n 可以變成該冪次,因此回傳真;反之,如果不存在任何冪次滿足此條件,則回傳假。




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

創作回應

更多創作