2017年9月2日 星期六

leetcode-667 Beautiful Arrangement II

題意: 給定n和k, 求出由1-n組成的array,其相鄰數的差值洽有k種

解題思路: 這題是大水題,稍微試一下就可以解決,構作 1,k+1,(k+1)-(k-1),k,..... ; 即可發現符合需求

C++code:
class Solution {
public:
    vector<int> constructArray(int n, int k) {
        vector<int>ans;
        int cur=1;
        int s=1;
        ans.push_back(1);
        for(int i=k;i>=1;i--)
        { 
            cur=cur+s*i;
            ans.push_back(cur);
            s=-s;
        }
        for(int i=k+2;i<=n;i++)
            ans.push_back(i);
        return ans;
    }
};

沒有留言:

張貼留言