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

斗米

关注

阅读 18

2022-04-01

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)

0 0 举报