LeetCode 667 优美的排列II[数学] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 667 优美的排列II[数学] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
一道找规律题目,需要一段比较长的排序才能够发现其中的规律,规律其实是[1,k+1,2,1+k-1,3,1+k-2,…,k+2,k+3,…,n],所以只需要先构造前面k+1的序列(奇数位置从1往后,偶数位置从k+1往前),k+2之后的排序即顺序排序即可,代码如下:
class Solution
public:
vector<int> constructArray(int n, int k)
int left = 1, right = k + 1;
vector<int> ans;
while(ans.size() < k + 1)
if(ans.size() < k + 1)ans.emplace_back(left ++);
if(ans.size() < k + 1)ans.emplace_back(right --);
int index = k + 2;
while(index <= n)
ans.emplace_back(index);
index ++;
return ans;
;
以上是关于LeetCode 667 优美的排列II[数学] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 0667. 优美的排列 II - 思维 + 构造