題目描述:
給定正整數 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...