Skip to content

Latest commit

 

History

History
69 lines (46 loc) · 2.13 KB

667-beautiful-arrangement-ii.md

File metadata and controls

69 lines (46 loc) · 2.13 KB

667. Beautiful Arrangement II - 优美的排列 II

给定两个整数 n 和 k,你需要实现一个数组,这个数组包含从 1 到 n 的 n 个不同整数,同时满足以下条件:

① 如果这个数组是 [a1, a2, a3, ... , an] ,那么数组 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中应该有且仅有 k 个不同整数;.

② 如果存在多种答案,你只需实现并返回其中任意一种.

示例 1:

输入: n = 3, k = 1
输出: [1, 2, 3]
解释: [1, 2, 3] 包含 3 个范围在 1-3 的不同整数, 并且 [1, 1] 中有且仅有 1 个不同整数 : 1

 

示例 2:

输入: n = 3, k = 2
输出: [1, 3, 2]
解释: [1, 3, 2] 包含 3 个范围在 1-3 的不同整数, 并且 [2, 1] 中有且仅有 2 个不同整数: 1 和 2

 

提示:

  1.  n 和 k 满足条件 1 <= k < n <= 104.

 


题目标签:Array

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
python3 124 ms N/A
class Solution:
    def constructArray(self, n, k):
        """
        :type n: int
        :type k: int
        :rtype: List[int]
        """
        res = [1]
        for i, x in enumerate(range(k, 0, -1)):
            res.append(res[i] + [1, -1][i%2] * x)
        for i in range(2+k, n+1):
            res.append(i)
        return res