演算法學習記錄03 判斷輸入數字是否是2的整數次冪

2022-02-15 06:47:37 字數 472 閱讀 2686

需求分析:

0 肯定不是2的整數次冪

能不斷被2整除直到商1且餘數為0的肯定是2的整數次冪

比如: 8 %2 = 0 8 / 2 = 4

​ 4 % 2 = 0 4/2 = 2

​ 2%2 = 0 2/2 = 1

​ 9 % 2 = 1 9 / 2 = 4.5

迴圈到最後商1 且沒有餘數 肯定是2的整數次冪,否則不是

function istwopower(n)

let devicenumer = n;

while(devicenumber !== 1)

devicenumber = devicenumber / 2

} return true

}

最後,上面這個函式的時間複雜度為 o (logn)

2019 11 27 演算法學習記錄 猜數字

小a 和 小b 在玩猜數字。小b 每次從 1,2,3 中隨機選擇乙個,小a 每次也從 1,2,3 中選擇乙個猜。他們一共進行三次這個遊戲,請返回 小a 猜對了幾次?輸入的guess陣列為 小a 每次的猜測,answer陣列為 小b 每次的選擇。guess和answer的長度都等於3。示例 1 輸入 ...

演算法學習記錄

排序演算法複雜度 層序遍歷 雙端佇列 演算法流程 特例處理 當樹的根節點為空,則直接返回空列表 初始化 列印結果空列表 res 包含根節點的雙端佇列 queue bfs 迴圈 當 queue 為空時跳出 新建列表 temp 用於臨時儲存當前層列印結果 當前層列印迴圈 迴圈次數為當前層節點數 即 qu...

演算法學習03 桶排序

首先遍歷陣列,找到最大值與最小值,設定乙個長度為最大值 最小值 1的陣列,再次遍歷這個陣列,以當前值 最小值作為下標,將該下標的計數器增1。掃瞄一遍計數器陣列,按順序將值收集起來。舉個例子 nums 2,4,3,4,7 遍歷一次陣列,找到陣列元素的最小值與最大值分別為2和7,那麼我們設定乙個長度為7...