leetcode

Leetcode Solutions (0x6A73)
git clone https://git.pngu.org/leetcode
Log | Files | Refs | Submodules | README

beautiful_arrangement2.py (1013B)


# 667. Beautiful Arrangement II

"""
given two integers 'n' and 'k', construct a list 'answer' that contains 'n'
different positive integers ranging from 1 to 'n' and obeys the following
requirement: suppose this list is 'answer = [a1, a2, a3, ..., an]', the the
list '[a1 - a2, a2 - a3, ..., an-1 - an]' has exactly 'k' distinct integers.
return the list 'answer'. if there are multiple valid answers, return any of
them.
"""


class Solution(object):
    def constructArray(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[int]
        """
        ans, left, right = [0] * n, 1, k + 1
        for i in range(k + 1):
            if i & 1:
                ans[i] = right
                right -= 1
            else:
                ans[i] = left
                left += 1
        for i in range(k + 1, n):
            ans[i] = i + 1
        return ans


if __name__ == "__main__":
    obj = Solution()
    print(obj.constructArray(3, 1))
    print(obj.constructArray(3, 2))