給你乙個整數陣列 arr ,請使用 煎餅翻轉 完成對陣列的排序。
一次煎餅翻轉的執行過程如下:
選擇乙個整數 k ,1 <= k <= arr.length
反轉子陣列 arr[0...k-1](下標從 0 開始)
例如,arr = [3,2,1,4] ,選擇 k = 3 進行一次煎餅翻轉,反轉子陣列 [3,2,1] ,得到 arr = [1,2,3,4] 。
以陣列形式返回能使 arr 有序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 10 * arr.length 範圍內的有效答案都將被判斷為正確。
示例 1:
輸入:[3,2,4,1]
輸出:[4,2,4,3]
解釋:我們執行 4 次煎餅翻轉,k 值分別為 4,2,4,和 3。
初始狀態 arr = [3, 2, 4, 1]
第一次翻轉後(k = 4):arr = [1, 4, 2, 3]
第二次翻轉後(k = 2):arr = [4, 1, 2, 3]
第三次翻轉後(k = 4):arr = [3, 2, 1, 4]
第四次翻轉後(k = 3):arr = [1, 2, 3, 4],此時已完成排序。
示例 2:
輸入:[1,2,3]
輸出:解釋:
輸入已經排序,因此不需要翻轉任何內容。
請注意,其他可能的答案,如 [3,3] ,也將被判斷為正確。
1 <= arr.length <= 100
1 <= arr[i] <= arr.length
arr 中的所有整數互不相同(即,arr 是從 1 到 arr.length 整數的乙個排列)
題目較為簡單,通過尋找規律可知,先通過執行k翻轉然後再整體翻轉,就可以將k放置於末尾,根據這兩個關鍵的操作,可以完成乙個從尾部向前的插入排序演算法。
leetcode 969 煎餅排序
題目 給定陣列 a,我們可以對其進行煎餅翻 我們選擇一些正整數 k a.length,然後反轉 a 的前 k 個元素的順序。我們要執行零次或多次煎餅翻轉 按順序一次接一次地進行 以完成對陣列 a 的排序。返回能使 a 排序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 10 a.le...
LeetCode 969 煎餅排序
給定陣列 a,我們可以對其進行煎餅翻 我們選擇一些正整數 k a.length,然後反轉 a 的前 k 個元素的順序。我們要執行零次或多次煎餅翻轉 按順序一次接一次地進行 以完成對陣列 a 的排序。返回能使 a 排序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 10 a.lengt...
LeetCode 969 煎餅排序
給定陣列 a,我們可以對其進行煎餅翻 我們選擇一些正整數 k a.length,然後反轉 a 的前 k 個元素的順序。我們要執行零次或多次煎餅翻轉 按順序一次接一次地進行 以完成對陣列 a 的排序。返回能使 a 排序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 10 a.lengt...