旋轉陣列的四種解法

2021-10-11 11:08:23 字數 1013 閱讀 4062

示例:

輸入: [1,2,3,4,5,6,7] 和 k = 3

輸出: [5,6,7,1,2,3,4]

解釋:向右旋轉 1 步: [7,1,2,3,4,5,6]

向右旋轉 2 步: [6,7,1,2,3,4,5]

向右旋轉 3 步: [5,6,7,1,2,3,4]

}環狀替換法,即從起點開始,每次以k為單位進行跳躍式的替換,每個元素都會進行一次替換,進行了n次替換,即完成了陣列的旋轉;

注意點:

1.當下標+k大於陣列長度的時候,就需要減去長度回到」起點「處;

2.回到起點後,判斷回來的位置是否和出發的位置重複,如果不重複,那麼一直進行下去,直至完成n此跳躍,形成乙個環圈;

如果重合了,每次回到起點後就將起點完後挪動乙個位置,直至完成n次跳躍;

else//即將完成乙個系列的轉換

else

} }}

農夫過河的四種解法

題目描述 有乙個農夫,帶著乙隻狼 乙隻羊 一顆白菜過河。其中農夫不在的時候狼會吃羊,羊會吃白菜。只有乙隻船,且每次農夫最多只能帶一樣物品過河。求解決方案。思路 1.過程回溯法。把人 狼 羊 白菜看成a b c d。過河的時候從abcd中選兩個過河,在 選乙個回來。若發生狼跟羊 羊跟白菜在同乙個岸邊,...

相同的樹 四種解法

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。遞迴解法 遞迴解法 param p param q return public boolean issametree treenode p,treenode q else 非遞迴前序遍歷...

JS 類陣列轉陣列的幾種方法(四種)

for 迴圈 slice.call calll方法 map.call es6語法 array.from es6語法 展開運算子 原生 js 獲取 dom 元素集合是乙個類陣列物件,所以不能直接利用陣列物件 比如 sort foreach 需要轉換為陣列後,才可以使用 下述方法使用 arguments...