leetcode 969 煎餅排序

2021-09-26 06:55:42 字數 1204 閱讀 6286

題目:

給定陣列 a,我們可以對其進行煎餅翻**我們選擇一些正整數 k <= a.length,然後反轉 a 的前 k 個元素的順序。我們要執行零次或多次煎餅翻轉(按順序一次接一次地進行)以完成對陣列 a 的排序。

返回能使 a 排序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 10 * a.length 範圍內的有效答案都將被判斷為正確。

示例 1:

輸入:[3,2,4,1]

輸出:[4,2,4,3]

解釋:我們執行 4 次煎餅翻轉,k 值分別為 4,2,4,和 3。

初始狀態 a = [3, 2, 4, 1]

第一次翻轉後 (k=4): a = [1, 4, 2, 3]

第二次翻轉後 (k=2): a = [4, 1, 2, 3]

第三次翻轉後 (k=4): a = [3, 2, 1, 4]

第四次翻轉後 (k=3): a = [1, 2, 3, 4],此時已完成排序。

示例 2:

輸入:[1,2,3]

輸出:解釋:

輸入已經排序,因此不需要翻轉任何內容。

請注意,其他可能的答案,如[3,3],也將被接受。

1 <= a.length <= 100

a[i] 是 [1, 2, …, a.length] 的排列

題目分析

目的:對陣列a進行排序

返回值:k值陣列

思路:

我們先從給定陣列中找到最大值的下表,然後反轉,就把該數放到陣列的最前面,然後執行一次k=size的反轉,就把最大值放到的陣列的最後,這樣我們就能確定乙個數的位置。迴圈執行就可以得到答案。

如[3,2,4,1] 找到最大值4

下標為2,k=3

反轉後得到[4,2,3,1]

k=size

反轉後得到[1,3,2,4]

具體**實現:

class solution

return list;

}//找出指定值的下標

private int findindex(int a,int value){

for(int i=0;i總結:

不是最優的解法,但是思路比較簡單,容易理解。實際在團隊開發中也一樣,可讀性可理解性和效能要兼顧。

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...

leetcode 969 煎餅排序

969.煎餅排序 給定陣列 a,我們可以對其進行煎餅翻 我們選擇一些正整數 k a.length,然後反轉 a 的前 k 個元素的順序。我們要執行零次或多次煎餅翻轉 按順序一次接一次地進行 以完成對陣列 a 的排序。返回能使 a 排序的煎餅翻轉操作所對應的 k 值序列。任何將陣列排序且翻轉次數在 1...