[Swift Weekly Contest 118]LeetCode969.煎饼排序 | Pancake Sor
Given an array? Return the k-values corresponding to a sequence of pancake flips that sort? Example 1: Input: [3,2,4,1]
Output: [4,3] Explanation: We perform 4 pancake flips,with k values 4,and 3. Starting state: A = [3,1] After 1st flip (k=4): A = [1,3] After 2nd flip (k=2): A = [4,1,3] After 3rd flip (k=4): A = [3,4] After 4th flip (k=3): A = [1,3,4],which is sorted.
Example 2: Input: [1,3]
Output: [] Explanation: The input is already sorted,so there is no need to flip anything. Note that other answers,such as [3,3],would also be accepted.
Note:
给定数组? 返回能使? 示例 1: 输入:[3,1] 输出:[4,3] 解释: 我们执行 4 次煎饼翻转,k 值分别为 4,2,4,和 3。 初始状态 A = [3,1] 第一次翻转后 (k=4): A = [1,3] 第二次翻转后 (k=2): A = [4,3] 第三次翻转后 (k=4): A = [3,4] 第四次翻转后 (k=3): A = [1,4],此时已完成排序。 示例 2: 输入:[1,3] 输出:[] 解释: 输入已经排序,因此不需要翻转任何内容。 请注意,其他可能的答案,如[3,3],也将被接受。 提示:
40ms 1 class Solution { 2 func pancakeSort(_ A: [Int]) -> [Int] { 3 var A = A 4 var n:Int = A.count 5 var ans:[Int] = [Int]() 6 for i in (0...(n - 1)).reversed() 7 { 8 var j:Int = 0 9 while(A[j] != i+1) 10 { 11 j += 1 12 } 13 ans.append(j + 1) 14 ans.append(i + 1) 15 var newA:[Int] = [Int](repeating:0,count:n) 16 for k in 0..<n 17 { 18 newA[k] = A[k] 19 } 20 for k in 0...j 21 { 22 newA[k] = A[j-k] 23 } 24 A = newA 25 newA = [Int](repeating:0,count:n) 26 for k in 0..<n 27 { 28 newA[k] = A[k] 29 } 30 for k in 0...i 31 { 32 newA[k] = A[i-k] 33 } 34 A = newA 35 } 36 return ans 37 } 38 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – Expression.Call – 调用linq扩展名:FirstOrDefault
- Oracle 解决【ORA-01704:字符串文字太长】
- Adnroid:values/strings.xml报错:" error: Apostrophe
- ruby-on-rails – 如何在rails 3控制台中着色记录器输出
- ruby – 数字前的0
- 滑动动画以删除UICollectionView中的Cell – Swift 2.0
- vb6 Add-In 错误处理用获取当前函数名
- ruby-on-rails – Rails设计:从其他域登录
- 如何让搜索引擎抓取AJAX内容解决方案
- ORA-01034: ORACLE not available