leetcode869 重新排序得到2的冪

2021-09-12 10:31:15 字數 945 閱讀 2058

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

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

示例 1:

輸入:1輸出:true
示例 2:

輸入:10輸出:false
示例 3:

輸入:16輸出:true
示例 4:

輸入:24輸出:false
示例 5:

輸入:46輸出:true

1 <= n <= 10^9

public boolean reorderedpowerof2(int n) 

public long counter(int n)

怎麼判斷乙個數是不是2的冪次,將2的冪次方寫成二進位制形式後,很容易就會發現有乙個特點:二進位制中只有乙個1,並且1後面跟了n個0; 因此問題可以轉化為判斷1後面是否跟了n個0就可以了。如果將這個數減去1後會發現,僅有的那個1會變為0,而原來的那n個0會變為1;因此將原來的數與去減去1後的數字進行與運算後會發現為零

可以使用位運算 & 判斷

(n & (n-1))== 0

LeetCode 869 重新排序得到 2 的冪

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

2019,重新啟航

這是2019年的深夜,這幾天總是想為自己的2019年立一些flag,想做的太多,也總是半途而廢。2018年發生了很多很多很多事情,感覺自己還沒有過2018年,就結束了。其實早點結束也好,讓不好的事情早點過去。每週對一本書,寫乙個讀後感吧。盡可能多的更新 通過123讓自己和大家一起讀書吧。健康 多鍛鍊...

leetcode 1470 重新排列陣列

1470.重新排列陣列 給你乙個陣列 nums 陣列中有 2n 個元素,按 x1,x2,xn,y1,y2,yn 的格式排列。請你將陣列按 x1,y1,x2,y2,xn,yn 格式重新排列,返回重排後的陣列。示例 輸入 nums 2,5,1,3,4,7 n 3 輸出 2,3,5,4,1,7 解釋 由於...