0
点赞
收藏
分享

微信扫一扫

667. 优美的排列 II——模拟

斗米 2022-04-01 阅读 18
c++
class Solution {
public:
    vector<int> constructArray(int n, int k) {
        int left = 1, right = n;
        vector<int> ans(n);
        for(int i = 0; i < k; ++i) {
            if(i % 2 == 1) {
                ans[i] = right--;   //奇数位放大数
            }
            else {
                ans[i] = left++;    //偶数位放小数
            }
        }
        for(int i = k; i < n; ++i) {
            if(k % 2 == 0)
                ans[i] = right--;   //如果是偶数个的话,前k个数已经有k - 1种了,第k个是大数,所以倒序放置
            else
                ans[i] = left++;    //如果是奇数个的话,第k个数已经有k - 1种了,第k个是小数,所以正序放置
        }
        return ans;
    }
};
举报

相关推荐

0 条评论