LeetCode 969 煎餅排序

2022-09-22 03:00:12 字數 1166 閱讀 2952

給你乙個整數陣列 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...