217 重新排序得到2的冪

2021-09-26 14:25:41 字數 1018 閱讀 7989

題目描述:

給定正整數 n ,我們按任何順序(包括原始順序)將數字重新排序,注意其前導數字不能為零。

如果我們可以通過上述方式得到 2 的冪,返回 true;否則,返回 false。

示例 1:

輸入:1

輸出:true

示例 2:

輸入:10

輸出:false

示例 3:

輸入:16

輸出:true

示例 4:

輸入:24

輸出:false

示例 5:

輸入:46

輸出:true

1 <= n <= 10^9

emm,我使用的是全排列

效率有點低:

class solution 

if(n / 10 == 0)

// set儲存的是所有的索引

setset = new hashset<>();

listlist = new arraylist<>();

int tem = n;

int index = 0;

while (tem != 0)

return getzuhe(0, set, list);

}public boolean getzuhe(int sum,setset,listlist)

if(set.size() == 0)else

} for (int i = 0; i < list.size(); i++)

set.add(i);

}}

return false;

}}

學習一下別人的實現方法

不得不說效率真滴高,先將所有的2的冪次排序後放入到set中,然後我們將給的數字也排序然後看set中是否有。

class solution 

}public boolean reorderedpowerof2(int n)

}

leetcode869 重新排序得到2的冪

從正整數n開始,我們按任何順序 包括原始順序 將數字重新排序,注意其前導數字不能為零。如果我們可以通過上述方式得到 2 的冪,返回true 否則,返回false。示例 1 輸入 1輸出 true示例 2 輸入 10輸出 false示例 3 輸入 16輸出 true示例 4 輸入 24輸出 false...

LeetCode 869 重新排序得到 2 的冪

usr bin python3 coding utf 8 time 2019 3 16 author xfli the file.問題分析 方法1 1 求出這個數字重新排列的所有組合,python中可以使用itertools.permutations 函式實現,也可以用回溯法求 解。2 把 1 得到...

5413 重新排列句子中的單詞

句子 是乙個用空格分隔單詞的字串。給你乙個滿足下述格式的句子 text 句子的首字母大寫 text 中的每個單詞都用單個空格分隔。請你重新排列 text 中的單詞,使所有單詞按其長度的公升序排列。如果兩個單詞的長度相同,則保留其在原句子中的相對順序。請同樣按上述格式返回新的句子。輸入 text le...