diff --git "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md" "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md" index 5b9bf5d35d3e8ff9d5c901aad38e123e977e2daf..c9e191decf296477a37b63cd3ce274ba21b1c5d6 100644 --- "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md" +++ "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\347\203\247\351\245\274\346\216\222\345\272\217.md" @@ -157,39 +157,39 @@ class Solution { public: vector pancakeSort(vector& arr) { sort(arr, arr.size()); - return res; + return res; } - + private: - // 记录反转操作序列 + // 记录反转操作序列 vector res; - void sort(vector& cakes, int n){ - // base case - if(n == 1) return; - - // 寻找最大饼的索引 - int maxCakeIndex = max_element(cakes.begin(), cakes.begin() + n) - cakes.begin(); - - // 下面进行把最大的饼放到最后的两次翻转 - // 如果最后一个饼就是最大的, 就不需要翻转, 直接进行下次递归 - if (maxCakeIndex == n-1){ - sort(cakes, n - 1); - return; - } - - // 第一次翻转, 将最大饼翻到最上面 - // 如果第一个饼本来就是最大的, 就不需要第一次翻转. - if (maxCakeIndex != 0) { - reverse(cakes.begin(), cakes.begin() + maxCakeIndex + 1); - res.push_back(maxCakeIndex + 1); - } - - // 第二次翻转,将最大饼翻到最下面 - reverse(cakes.begin(), cakes.begin() + n); - res.push_back(n); - - // 递归调用 - sort(cakes, n - 1); - } + void sort(vector& cakes, int n){ + // base case + if(n == 1) return; + + // 寻找最大饼的索引 + int maxCakeIndex = max_element(cakes.begin(), cakes.begin() + n) - cakes.begin(); + + // 下面进行把最大的饼放到最后的两次翻转 + // 如果最后一个饼就是最大的, 就不需要翻转, 直接进行下次递归 + if (maxCakeIndex == n-1){ + sort(cakes, n - 1); + return; + } + + // 第一次翻转, 将最大饼翻到最上面 + // 如果第一个饼本来就是最大的, 就不需要第一次翻转. + if (maxCakeIndex != 0) { + reverse(cakes.begin(), cakes.begin() + maxCakeIndex + 1); + res.push_back(maxCakeIndex + 1); + } + + // 第二次翻转,将最大饼翻到最下面 + reverse(cakes.begin(), cakes.begin() + n); + res.push_back(n); + + // 递归调用 + sort(cakes, n - 1); + } }; ``` \ No newline at end of file